Alpha Blockland Archive

Preserving 0002 content since 2006

Mass Moving

This will let you shift up to 1000 bricks.  Please note, this is NOT TBM's iGob.  iGob cannot be decompiled for use.  Version 1 adds functionality for mass rotation, and version 2 adds functionality for saving.

To install or update, follow these steps:

1.  Download the required files, and extract to your BL directory.

2.  Open the console with the tilde (~) key.

3.  Type exec("rtb/MassMovingInstall.cs"); into the console.

4.  Push enter.

5.  Close the console.

6.  Follow the on-screen instructions.

To use, hold the left alt key and use the Editor Wand.  Use / and * to scale the selector.  Push enter on your numpad to select those bricks.  When a group of bricks is selected, you can hold the left alt, and use the Editor Wand to change your selection.   You can use 7 and 9 to rotate the set of bricks, and / and * to dynamically scale that set of bricks.

To save, hold the right alt key, and push the left alt key while having a set of bricks selected.

To load, hold the left alt key, and push the right alt key while having nothing mounted.

Sorry about the saving/loading key commands.  Its all I could think of.

    Download


Name Filtering

This will kick Blockheads, so you don't waste bandwidth sending files to someone not running RTB, rename Blockdudes, and stop people with invisible names. 

1.  Open rtb/server/scripts/serverCmd.cs

2.  Find (Ctrl + F) "function ServerCmdUpdatePrefs".

3.  Replace that entire function with...

function ServerCmdUpdatePrefs(%client, %name, %skin, %headCode, %visorCode, %backCode, %leftHandCode, %headCodeColor, %visorCodeColor, %backCodeColor, %leftHandCodeColor, %decal,%faceprint)
{
    if(!%client)
        return;
    if(%name $= "Blockhead")
        %client.delete("Get the Blockland mod RTB at returntoblockland.com");
    if(%name $= "Blockdude")
        %name = $RandName[getrandom(0,$numRndNames)];
    if(getSubStr(strreplace(%name," ",""),0,1) $= "%")
        %name = $RandName[getrandom(0,$numRndNames)];

    %client.setPlayerName(%name);
    %client.colorSkin                    = $legoColor[%skin];

    %client.headCode            = $headCode[%headCode];
    %client.visorCode            = $visorCode[%visorCode];
    %client.backCode            = $backCode[%backCode];
    %client.leftHandCode        = $leftHandCode[%leftHandCode];
    %client.chestCode           = basedecalImage;
    %client.faceCode            = facelegoImage;

    %client.headCodeColor        = $legoColor[%headCodeColor];
    %client.visorCodeColor        = $legoColor[%visorCodeColor];
    %client.backCodeColor        = $legoColor[%backCodeColor];
    %client.leftHandCodeColor    = $legoColor[%leftHandCodeColor];
    %client.chestdecalcode        = addTaggedString(%decal);
    %client.faceprintcode        = addTaggedString(%faceprint);
    %player = %client.player;
    if(isObject(%player))
    {
        if($Server::MissionType $= "SandBox" && %client.player)
        {
            %player.unMountImage($headSlot);
            %player.unMountImage($visorSlot);
            %player.unMountImage($backSlot);
            %player.unMountImage($leftHandSlot);
            %player.unMountImage($decalslot);
            %player.unMountImage($faceprintslot);

            %player.setSkinName(%client.colorSkin);
            %player.mountImage(%client.headCode, $headSlot, 1, %client.headCodeColor);
            %player.mountImage(%client.visorCode, $visorSlot, 1, %client.visorCodeColor);
            %player.mountImage(%client.backCode, $backSlot, 1, %client.backCodeColor);
            %player.mountImage(%client.leftHandCode, $leftHandSlot, 1, %client.leftHandCodeColor);
            %player.mountImage(%client.chestCode , $decalslot, 1, %client.chestdecalcode);
            %player.mountImage(%client.faceCode , $faceslot, 1, %client.faceprintcode);
        }
        setThePlayerName(%client);
    }
    
    //update everyone's scoreboard with the new name
    messageAll('MsgClientJoin', '',
              %client.name,
              %client,
              %client.sendGuid,
              %client.score,
              %client.isAiControlled(),
              %client.isAdmin,
              %client.isSuperAdmin);
}

%file = new FileObject();
%file.openForRead("rtb/server/RandomNames.txt");
%i = -1;
while( !%file.isEOF() )
$RandName[%i++] = %file.readLine();
$numRndNames = %i-1;
%file.close(); 

4.  Download and extract the attached file.

    Download

Minigun-Shotgun Mod

These change your pistol into a minigun and your rifle into a shotgun.  Just a simple mod that makes the game have more variety.

    Download


Brick Damage Colors

This makes it so your bricks show what stage of damage they're in in a deathmatch. 

1.  Open rtb/server/scripts/radiusdamage.cs.

2.  Scroll to the bottom and replace...

        if(%targetObject.getDatablock().classname $= "Brick" && $Pref::Server::DMBreakBricks == 1 && %targetObject.NoDestroy == 0)
        {
            if(%distScale == 1)
            {
                %targetObject.hits++;
                %targetObject.hits++;

            }
            else
            {
                %targetObject.hits++;
            }
            if(%targetObject.hits >= $Pref::Server::DMMaxBrickHits-2)
            {
                %targetObject.setSkinName('red');
            }
            else
            {
                %targetObject.SkinName = %targetObject.getSkinName();
            }
            if(%targetObject.hits >= $Pref::Server::DMMaxBrickHits)
            {
                %targetObject.hits = 0;
                %targetObject.startFade(0, 0, true);
                %targetObject.hide(true);
                %targetObject.setSkinName(%targetObject.SkinName);
                %targetObject.schedule($Pref::Server::DMBrickReSpawnTime*1000, "hide", false);
                  %targetObject.schedule($Pref::Server::DMBrickReSpawnTime*1000 + 100, "startFade", 1000, 0, false);
               
            }
        }

with...

        if(%targetObject.getDatablock().classname $= "Brick" && $Pref::Server::DMBreakBricks == 1 && %targetObject.NoDestroy == 0)
        {
            if(%targetObject.NoDestroy != 1)
            {
                %targetObject.hits = mfloor(%targetObject.hits + (%distScale * ($Pref::Server::DMMaxBrickHits/4))) + 1;
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/2))
                %targetObject.setSkinName('yellowlight');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/3))
                %targetObject.setSkinName('yellow');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/4))
                %targetObject.setSkinName('yellowdark');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/5))
                %targetObject.setSkinName('orange');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/6))
                %targetObject.setSkinName('red');
            if(%targetObject.hits < $Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/2)
                %targetObject.SkinName = %targetObject.getSkinName();
            if(%targetObject.hits >= $Pref::Server::DMMaxBrickHits)
            {
                %targetObject.hits = 0;
                %targetObject.startFade(0, 0, true);
                %targetObject.hide(true);
                %targetObject.setSkinName(%targetObject.SkinName);
                %targetObject.schedule($Pref::Server::DMBrickReSpawnTime*1000, "hide", false);
                  %targetObject.schedule($Pref::Server::DMBrickReSpawnTime*1000 + 100, "startFade", 1000, 0, false);
               
            }
        }
        }

3.  Open server/scripts/weapons.cs.

4.  Scroll to the bottom, and above...

if (%col.getClassName() $= "Player" || %col.getClassName() $= "AIPlayer")

put...

        %targetObject = %col;
        if(%targetObject.getDatablock().classname $= "Brick" && $Pref::Server::DMBreakBricks == 1 && %targetObject.NoDestroy == 0)
        {
            if(%targetObject.NoDestroy != 1)
            {
                %targetObject.hits = mfloor(%targetObject.hits + (%distScale * ($Pref::Server::DMMaxBrickHits/4))) + 1;
            if(%targetObject.hits < $Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/2)
                %targetObject.SkinName = %targetObject.getSkinName();
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/2))
                %targetObject.setSkinName('yellowlight');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/3))
                %targetObject.setSkinName('yellow');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/4))
                %targetObject.setSkinName('yellowdark');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/5))
                %targetObject.setSkinName('orange');
            if(%targetObject.hits >= mfloor($Pref::Server::DMMaxBrickHits - $Pref::Server::DMMaxBrickHits/6))
                %targetObject.setSkinName('red');
            if(%targetObject.hits >= $Pref::Server::DMMaxBrickHits)
            {
                %targetObject.hits = 0;
                %targetObject.startFade(0, 0, true);
                %targetObject.hide(true);
                %targetObject.setSkinName(%targetObject.SkinName);
                %targetObject.schedule($Pref::Server::DMBrickReSpawnTime*1000, "hide", false);
                  %targetObject.schedule($Pref::Server::DMBrickReSpawnTime*1000 + 100, "startFade", 1000, 0, false);
               
            }
        }
        }

Chat Imposter Patch

Annoyed by the script at http://returntoblockland.com/forums/viewtopic.php?p=25966?  Just disable it!

1. Open server/scripts/serverCmd.cs.

2. Find (Ctrl+F) 'SandBox'.

3. Scroll down a bit more, and change...

   //update everyone's scoreboard with the new name
   messageAll('MsgClientJoin', '',
           %client.name,
           %client,
           %client.sendGuid,
           %client.score,
           %client.isAiControlled(),
           %client.isAdmin,
           %client.isSuperAdmin);

To...

   //update everyone's scoreboard with the new name
   messageAll('MsgClientJoin', 'Someone changed their name to %1!',
           %client.name,
           %client,
           %client.sendGuid,
           %client.score,
           %client.isAiControlled(),
           %client.isAdmin,
           %client.isSuperAdmin);

Lazer Tag Minigame

Adds lasertag functionality.  It adds it to the minigame menu, but'll only work if the server has it too.  Requires a bit of installation code.

1.  Open server/scripts/game.cs

2.  Find (Ctrl + F) 'MissionCleanup.add(%player);'.

3.  Under that, add...

    if($teamtaggamestarted && (%this.team $= "Red" || %this.team $= "Blue"))
    {
        %cl = %this;
        messageClient(%this, 'MsgClearInv');

            if(%this.team $= "Blue")
            {
                %cl.player.setSkinName('blue');
                %cl.player.mountImage(%cl.faceCode , $faceslot, 1, 'Shades-Blue');
                serverCmdAddtoInvent(%this,0,$LaserTagWeapon);

            }   
            if(%this.team $= "Red")
            {
                %cl.player.setSkinName('red');
                %cl.player.mountImage(%cl.faceCode , $faceslot, 1, 'Shades-Blue');
                serverCmdAddtoInvent(%this,0,$LaserTagWeapon);
            }
        %cl.player.mountImage(blasterimage,0);
        serverCmdAddtoInvent(%this,0,$LaserTagWeapon);
        %player.isEquiped[0] = true;
        %player.isEquiped[1] = false;
        %player.isEquiped[2] = false;
           %player.isEquiped[3] = false;
           %player.isEquiped[4] = false;   
    }

4.  And change...

if($Pref::Server::CopsAndRobbers...

To...

else if($Pref::Server::CopsAndRobbers...

5.  Download the rest, and you're good to go.

    Download


Spraycan Trail Particles

Remember those old days with your spray can spraying particles? Now its time to go back to those days!

1. Open server/scripts/tools/sprayCan.cs.

2. Go to (Ctrl + G) line 29. (Disable Word Wrap if Ctrl + G doesn't work)

3. Remove the '//' in that line.

4. Add this at the very top of sprayCan.cs.

datablock ParticleData(SprayCanTrailParticle)
{
dragCoefficient = 3.0;
windCoefficient = 0.0;
gravityCoefficient = 0.0;
inheritedVelFactor = 0.0;
constantAcceleration = 0.0;
lifetimeMS = 300;
lifetimeVarianceMS = 10;
spinSpeed = 10.0;
spinRandomMin = -50.0;
spinRandomMax = 50.0;
useInvAlpha = true;
animateTexture = false;
//framesPerSec = 1;

textureName = "~/data/particles/cloud";

// Interpolation variables
colors[0] = getrandom(0,1000) / 1000 SPC getrandom(0,1000) / 1000 SPC getrandom(0,1000) / 1000 @ " 0.500";
colors[1] = getrandom(0,1000) / 1000 SPC getrandom(0,1000) / 1000 SPC getrandom(0,1000) / 1000 @ " 0.500";
colors[2] = getrandom(0,1000) / 1000 SPC getrandom(0,1000) / 1000 SPC getrandom(0,1000) / 1000 @ " 0.500";
colors[3] = "0.000 0.0 0.0 0.000";
sizes[0] = 0.5;
sizes[1] = 0.55;
sizes[2] = 0.6;
sizes[3] = 0.7;
times[0] = 0.0;
times[1] = 0.33;
times[2] = 0.66;
times[3] = 1;
};

datablock ParticleEmitterData(SprayCanTrailEmitter)
{
ejectionPeriodMS = 10;
periodVarianceMS = 5;
ejectionVelocity = 0.25;
velocityVariance = 0.10;
ejectionOffset = 0.1;
thetaMin = 0.0;
thetaMax = 90.0;
phiReferenceVel = 0;
phiVariance = 360;
overrideAdvance = false;
particles = SprayCanTrailParticle;
};

5. And for a little retro-ness, replace the SprayCan::onUse function with...

function sprayCan::onUse(%this,%player, %invPosition)
{
%client = %player.client;
if(%client)
{
%color = %client.color;
}
%mountedImage = %player.getMountedImage($RightHandSlot);

//if a spray can is already mounted
if(%mountedImage.item $= "sprayCan" && (%player.currWeaponSlot == %invPosition))
{
%image = nameToID("SprayCanImage");
if(%client.curSprayCan == 0){
%client.colorIndex++;

if(%client.colorIndex > $TotalColors)
{
%client.colorIndex = 0;
}
commandtoclient(%client,'ShowBrickImage',$ColorPreview[%client.colorIndex]);
%player.mountImage(%image, $RightHandSlot, 1, $LegoColor[%client.colorIndex]);
}
if(%client.curSprayCan == 1){
%client.letterIndex++;

if(%client.letterIndex > $TotalLetters)
{
%client.letterIndex = 0;
}
commandtoclient(%client,'ShowBrickImage',$LetterPreview[%client.letterIndex]);
%player.mountImage(%image, $RightHandSlot, 1, 'rainbow');
}
if(%client.curSprayCan == 2){
%client.blackletterIndex++;

if(%client.blackletterIndex > $TotalBlackLetters)
{
%client.blackletterIndex = 0;
}
commandtoclient(%client,'ShowBrickImage',$BlackLetterPreview[%client.BlackLetterIndex]);
%player.mountImage(%image, $RightHandSlot, 1, 'rainbow');
}
}
else
{
//if the client has a color, use that
%image = nameToID("SprayCanImage");
if(%client.curSprayCan == 0)
%player.mountImage(%image, $RightHandSlot, 1, $LegoColor[%client.colorIndex]);
else
%player.mountImage(%image, $RightHandSlot, 1, 'rainbow');

//hilight inv slot
messageClient(%client, 'MsgHilightInv', '', %InvPosition);
%player.currWeaponSlot = %invPosition;
if(%client.curSprayCan == 0){
%client.color = $legoColor[%obj.client.colorIndex];
commandtoclient(%client,'ShowBrickImage',$ColorPreview[%client.colorIndex]);}
if(%client.curSprayCan == 1){
%client.color = $LetterColor[%obj.client.letterIndex];
commandtoclient(%client,'ShowBrickImage',$LetterPreview[%client.letterIndex]);}
if(%client.curSprayCan == 2){
%client.color = $BlackLetterColor[%obj.client.BlackletterIndex];
commandtoclient(%client,'ShowBrickImage',$BlackLetterPreview[%client.BlackLetterIndex]);}
}
}

6. Now just start your game, and you're good to go!

Team Spawns

This tutorial will give you a wand mode that can create team spawns, and paint a team that color if the team name is a color.  You must have some background on how to code for this tutorial.  If you do not, some parts of this tutorial may seem hard for you to follow.

1.  Open server/scripts/AdminCommands.cs.

2.  Find (Ctrl + F) 'togglewandmode'.

3.  Add a wand mode.  (If you don't know how to do this, find another tutorial, or ask any coder on how to do this.)

4.  Open server/scripts/tools/wand.cs.

5.  Find 'onCollision'.

6.  Under the rest of the conditionals, add this for the wand mode that you made:

    if(%col.IsTeamSpawn != 1)
    {
        %obj.client.isMakingTeamSpawn = 1;
        %obj.client.RequestedTeamSpawn = %col;
        commandtoclient(%obj.client,'OpenPWBox');
        bottomprint(%obj.client,"Enter a team name.",5,1);
    }
    else
    {
        %col.IsTeamSpawn = 0;
        centerprint(%obj.client,"Removed Team Spawn Properties.",5,1);
    } 

7.  Open server/scripts/movers.cs.

8.  Find 'checkdoorpassword'.

9.  Add this at the beginning of the function...

    if(%client.isMakingTeamSpawn){
        %client.isMakingTeamSpawn = 0;
        %BrickObj = %Client.RequestedTeamSpawn;
        %match = 0;
        for(%i = 0; %i<$Pref::Server::TotalTeams; %i++)
        {
            %Team = $Teams[%i];
            if(%Team $= %Password){
                centerprint(%client,"Created a " @ %Team @ " team spawn.",5,1);
                %BrickObj.IsTeamSpawn = 1;
                %match++;
                $TeamSpawn[%Team] = %BrickObj;
            }
        }
        if(%match == 0)
            centerprint(%client,"Invalid team name!",5,1);
        %Client.RequestedTeamSpawn = "";
        return;
    }

10.  Open server/scripts/game.cs.

11.  Find '%player.setTransform(%x SPC %y SPC %z);'

12.  Right under that conditional, add...

else if(%this.team !$= "")
{
    if($TeamSpawn[%this.team] !$= ""){
    %TeamSpawn = $TeamSpawn[%this.team];
        if(%TeamSpawn.IsTeamSpawn != 0){
        %trans = %TeamSpawn.getWorldBoxCenter();
        %x = getWord(%trans,0) + getRandom(2,-2);
        %y = getWord(%trans,1) + getRandom(2,-2);
        %z = getWord(%trans,2) + 1;
        %player.setTransform(%x SPC %y SPC %z);
        schedule(1000,0,colorplayer,%this,%player);
        }
        else
        %player.setTransform(%spawnPoint);
    }
    else
    %player.setTransform(%spawnPoint);
}

13.  The conditional block should look something like this...

if($Pref::Server::CopsAndRobbers)
{
    %CopsRnd = getRandom(1,$TotalCopSpawnPoints);
    %RobsRnd = getRandom(1,$TotalRobberSpawnPoints);

    if(%this.team $= "Cops")
    {
        %spawnPoint = $CopSpawn[%CopsRnd];
    }
    if(%this.team $= "Robbers")
    {
        %spawnPoint = $RobberSpawn[%RobsRnd];
    }

    %trans = %spawnPoint.getTransform();
    %x = getWord(%trans,0) + getRandom(2,-2);
    %y = getWord(%trans,1) + getRandom(2,-2);
    %z = getWord(%trans,2) + 1;
   
    %player.setTransform(%x SPC %y SPC %z);
}
else if(%this.team !$= "")
{
    if($TeamSpawn[%this.team] !$= ""){
    %TeamSpawn = $TeamSpawn[%this.team];
        if(%TeamSpawn.IsTeamSpawn != 0){
        %trans = %TeamSpawn.getWorldBoxCenter();
        %x = getWord(%trans,0) + getRandom(2,-2);
        %y = getWord(%trans,1) + getRandom(2,-2);
        %z = getWord(%trans,2) + 1;

        %player.setTransform(%x SPC %y SPC %z);
        schedule(1000,0,colorplayer,%this,%player);
        }
        else
        %player.setTransform(%spawnPoint);
    }
    else
    %player.setTransform(%spawnPoint);
}
else
{
%player.setTransform(%spawnPoint);
}

14.  Add this function anywhere...

function colorplayer(%this,%player){
%teamname = %this.team;
for(%i = 0;%i <= $TotalColors;%i++){
    %color = strreplace($ColorPreview[%i],"rtb/data/shapes/bricks/","");
    %color = strreplace(%color,".brickside.bmp","");
    if(%teamname $= %color){
        %player.setSkinName(%teamname);
        %player.unmountImage($headSlot);
        %player.unmountImage($visorSlot);
        %player.unmountImage($backSlot);
        %player.unmountImage($leftHandSlot);
    }
}
}

Fixing Your Plunger

Ever wanted to blow bombs with the plunger again?  Well now, you can!

1. Open server/scripts/player.cs.
2. Search (Ctrl + F) for "blowbricks".
3. Change... 

    serverCmdblowbricks(%client,%bomb);

To...

    blowbricks(%client,%bomb);

Colored Server Names

This tutorial will teach you something that I discovered pretty recently, and you may have seen being used.  Its colored server names!

1.  Start a server, if you don't have one running already.  Remember the server name.

2.  Open the console with the tilde (~) key.

3.  Type this into the console...

$Pref::Server::Name = "[RTB] *Color**ServerName*";

where *color* can be...
\c0 - black
\c1 - red
\c2 - white
\c3 - white
\c4 - pink
\c5 - blue

and  *ServerName* is your server's name.

4.  Push enter, and close the console with the tilde key.

Please be aware that this does add 3 characters to your 18 character server name length limit.

Vehicle Spawners

This will add a wand mode that allows you to make a brick into a vehicle spawn.  This requires the Boat Mod, and Vehicle Damage, Clock Mode, Teleport Gateways, and some light experience in coding.  Unexperienced?  Look through the tutorial, and see if you can understand it.  If you can't, don't start.  Ask me on The Yabber, the RTB forums, or on Blockland.

Note:  File locations may vary.  If you can't find the requested object, try using Agent Ransack.

1.  Open teleportgateways.cs in rtb/server/scripts, and find (Ctrl+F) ToggleWandMode.

2.  At the very end of that function, it might look something like...

    if(%client.WandMode == 6)
    {
        messageClient(%client,"","\c2Wand in Clock-Mode");
    }
    if(%client.WandMode == 7)
    {
        messageClient(%client,"","\c2Wand in Teleport-By-ID-Mode");
    }

    if(%client.WandMode == 8)
    {
        messageClient(%client,"","\c2Wand in Teleport-Gateway-Mode");
    }
    }
}

Add...

    if(%client.WandMode == 9)
    {
        messageClient(%client,"","\c2Wand in Vehicle-Spawn-Mode");
    }

to the end of that so it looks like...

    if(%client.WandMode == 8)
    {
        messageClient(%client,"","\c2Wand in Teleport-Gateway-Mode");
    }

    if(%client.WandMode == 9)
    {
        messageClient(%client,"","\c2Wand in Vehicle-Spawn-Mode");
    }
    }
}

Adjust 9 to the next intervaled number in the list. 

3.  At the top of the function, change...

    if(%client.isAdmin || %client.isSuperAdmin)
    {
        %client.WandMode++;
        if(%client.WandMode > 8)
        {
            %client.WandMode = 0;
        }

To...

    if(%client.isAdmin || %client.isSuperAdmin)
    {
    if(%client.ShiftSize == 1 || %client.ShiftSize == 2)
    {
        %client.WandMode--;
        if(%client.WandMode < 0)
        {
            %client.WandMode = 9;
        }
    }
    else{
        %client.WandMode++;
        if(%client.WandMode > 9)
        {
            %client.WandMode = 0;
        }
    }

4.  Find WandMode == 8 in rtb/server/scripts/tools/teleportgateways.cs.

5.  Under that 'if' conditional, add...

            if(%obj.client.WandMode == 9)
            {
                if(%col.IsVehicleSpawn != 1)
                {
                %obj.client.isMakingVehicleSpawn = 1;
                %obj.client.RequestedVehicleSpawn = %col;
                commandtoclient(%obj.client,'OpenPWBox');
                bottomprint(%obj.client,"Enter a vehicle name.",5,1);
                }
                else
                {
                %col.IsVehicleSpawn = 0;
                centerprint(%obj.client,"Removed vehicle spawn.",5,1);
                }
            }

6.  Find checkdoorpassword in rtb/server/scripts/movers.cs.

7.  Add...

    if(%client.isMakingVehicleSpawn){
        %client.isMakingVehicleSpawn = 0;
        %BrickObj = %Client.RequestedVehicleSpawn;
        if(getword(%password,0) $= "horse" || getword(%password,0) $= "bike" || getword(%password,0) $= "base" || getword(%password,0) $= "plane" || getword(%password,0) $= "atv" || getword(%password,0) $= "raft" || getword(%password,0) $= "rowboat")
        {
            %BrickObj.isVehicleSpawn = 1;
            %BrickObj.VehType = "lego" @ getword(%password,0);
            centerprint(%client,"Created a lego" @ %password @ " spawn.",5,1);
            if(getword(%password,1) !$= "")
            %BrickObj.VehColor = getword(%password,1);
        }
        else
            centerprint(%client,"Invalid vehicle name!\n\nValid names are: Horse, Bike, Base, Plane, ATV, Raft, or Rowboat.",5,2);
        %Client.RequestedVehicleSpawn = "";
        return;
    }

Under...

    %col = %client.PWDoor;

8.  Find isTeleportObjGateway in rtb/server/scripts/player.cs.

9.  Under that 'if' conditional, add...

        if(%col.isVehicleSpawn == 1){
            if(%col.isLocked != 1) {
                InitContainerRadiusSearch(%col.getposition(), 15, $TypeMasks::VehicleObjectType);
                while ((%targetObject = containerSearchNext()) != 0) {
                    centerprint(%client,"There is already a vehicle near you!",5,1);
                    return;
                }
if(%col.VehType !$= "legoplane" && %col.VehType !$= "legoboat"){
   %pos = addtoz(%col.getWorldBoxCenter(),1);
      %obj =new WheeledVehicle()
      {
            dataBlock = %col.VehType;
            position = %pos;
        rotation = %col.EulerRot;
            mountable = true;
   };
   %obj.mountable = true;
   if(%col.VehColor !$= "")
    %obj.setskinname(%col.VehColor);
}
else
{
   %pos = addtoz(%col.getWorldBoxCenter(),2);
      %obj =new FlyingVehicle()
      {
            dataBlock = %col.VehType;
            position = %pos;
            rotation = %col.EulerRot;
            mountable = true;
   };
   %obj.mountable = true;
   if(%col.VehColor !$= "")
    %obj.setskinname(%col.VehColor);
}
            }
        }

10.  Add this code snippit to any .cs file:

function addtoz(%pos,%add){
%posx = getword(%pos,0);
%posy = getword(%pos,1);
%posz = getword(%pos,2);
%newposz = %posz + %add;
%pos = %posx SPC %posy SPC %newposz;
return %pos;
}

11.  Use the wand mode ingame and type bike blue to make a blue bike spawn.  Typing bike will create a random color bike spawn.

Vehicle Damage

This will allow you to shoot at vehicles, and it'll do damage to them.  The planes bomb, and shoot, and they blow up when they have reached their damage capacity.

    Requires the Boat Mod.

     Download


Boat Mode

This will add two boats to your collection of vehicles.  The models were made by Teno and Kaje, as they won the boat modeling competition on the RTB forums.  Note that this mod is prone to crashing.

    Download


Jetpack Particles

This will make your jetpack emit particles.

1. Open player.cs, and find (ctrl + f) the word ontrigger.

2. Replace the function...

function Armor::onTrigger(%this, %obj, %triggerNum, %val)
{
   // This method is invoked when the player receives a trigger
   // move event.  The player automatically triggers slot 0 and
   // slot one off of triggers # 0 & 1.  Trigger # 2 is also used
   // as the jump key.

with...

function Armor::onTrigger(%this, %obj, %triggerNum, %val)
{
   // This method is invoked when the player receives a trigger
   // move event.  The player automatically triggers slot 0 and
   // slot one off of triggers # 0 & 1.  Trigger # 2 is also used
   // as the jump key.
   if(%triggerNum == 4)
   {
    if(%val){
        %obj.client.player.JetpackParticles = schedule(10,0,shootjetpackparticle,%obj);
    }else{
        cancel(%obj.client.player.JetpackParticles);
     }
   }
}
function addtoz(%pos,%add){
%posx = getword(%pos,0);
%posy = getword(%pos,1);
%posz = getword(%pos,2);
%newposz = %posz + %add;
%pos = %posx SPC %posy SPC %newposz;
return %pos;
}
function shootjetpackparticle(%obj)
{
   %p = new Projectile() {
      dataBlock        = flame1Projectile;
      initialPosition  = addtoz(%obj.client.player.getTransform(),-0.5);
   };
   %obj.client.player.JetpackParticles = schedule(35,0,shootjetpackparticle,%obj);
   ServerPlay3D(JetpackSound, %obj.client.player.getTransform());
   MissionCleanup.add(%p);
   return %p;
}
datablock AudioProfile(JetpackSound)
{
   filename    = "~/data/sound/sprayLoop.wav";
   description = AudioClosest3d;
   preload = true;
};
datablock ParticleData(flame1part) {
    dragCoefficient      = 0;
    gravityCoefficient   = -0.01;
    inheritedVelFactor   = 0.2;
    constantAcceleration = 0;
    lifetimeMS           = 4000;
    lifetimeVarianceMS   = 0;
    textureName          = "~/data/particles/fire";
    useInvAlpha        = true;
    animateTexture        = false;
    spinSpeed        = 10.0;
    spinRandomMin        = -800.0;
    spinRandomMax        = 800.0;
    colors[0]    = "0.4 0.8 0.9 0.9";
    colors[1]    = "0.9 0.65 0.9 0.9";
    sizes[0]    = 1.05;
    sizes[1]    = 0;
    times[0]    = 0.0;
    times[1]    = 1;
};
datablock ParticleEmitterData(flame1Emitter) {
   ejectionPeriodMS = 1;
   periodVarianceMS = 0;
   ejectionVelocity = 0;
   velocityVariance = 0.0;
   ejectionOffset   = -1.05;
   thetaMin         = 0;
   thetaMax         = 30;
   phiReferenceVel  = 0;
   phiVariance      = 360;
   overrideAdvance = false;
   particles = "flame1part";  
};
datablock ProjectileData(flame1Projectile) {
   areaImpulse        = 0;
   directDamage        = 0;
   radiusDamage        = 0;
   damageRadius        = 0;
   particleEmitter     = flame1Emitter;
   muzzleVelocity      = 0;
   velInheritFactor    = 0;
   armingDelay         = 0;
   isFluid             = true;
   lifetime            = 200;
   fadeDelay           = 5000;
   bounceElasticity    = 0.9;
   bounceFriction      = 0;
   isBallistic         = false;
   gravityMod = 0;
   hasLight    = false;
};

3.  You can customize the colors by changing the values of...

    colors[0]    = "0.4 0.8 0.9 0.9";
    colors[1]    = "0.9 0.65 0.9 0.9";

and you can change the lifetime by changing the value of...

    lifetimeMS           = 4000;

Server Records

This'll save all your client's data, like admin status, editor wand privledges, and more.  It saves to serverrecords.txt.  Don't forget to exec the file.

    Download


Server Info Modifier

This mod gives a point to the server info preference.  It sets the client's map description as that.  Now, you can tell clients to come to www.blockheadbleh.co.nr on their map description when they join!  ;D.  Anyways, its better than reading the same old map description over and over again...

    Download


Inventory Redesign

This spreads out the bricks in inventory slot 4 to take up 4 slots instead of 1, thus using all 10 slots.  Requires my brick pack 1, and no collision bricks are removed.

    Download


Bleh's Persistance Methods

This will make your persistences load faster, and use less disk space.  It also enables the saving of multiple movers, clocks, and more that aren't currently savable.  If v1.045's method does not work for you, and you have replaced it with an older persistence.cs, please get the Original Method.

    Download

    Download Original Method


 

Teloporter Gateways

Requested by ThePro, these are a remake of Ephi's EphiPorts, except they're made by me.  Use the magic wand mode to make them.

    NOTE: Requires Clock Mode, and a knowledge of how to exec a file.

    Add the line...

    exec("./teleportgateways.cs");

    To game.cs, which can be opened with notepad, somewhere under line 201.  Those lines should look like...

   exec("./Brickprints.cs");
   exec("./environment.cs");
   exec("./teleportgateways.cs");

   // Keep track of when the game started
   $Game::StartTime = $Sim::Time;

    Once you've done that, download the file, and use the wand modes to create Gateways and portals.

    First, hit a brick in Gateway mode.

    Second, hit a brick in ID mode.  Assign any ID character combination to it.

    Third, jump on the Gateway, and type in the ID you assigned.  This should take you to the brick you assigned the ID to. 

    Download

 

SECRET AREA --- Good job reading this whoever the fuck you are. It's a secret to everybody


Infinite Movers

    Ever wanted to make your movers loop forever and ever and ever?  So they're like an automated shuttle?  Well now you can!  This mod makes it possible!  Version 2.0 adds support for multiple sections of movers, so you can make it turn left down the hall too!  Version 3.0 adds support for special cases, and version 3.1 fixes team doors.

To make an infinite mover...

    Append #INF to the return delay of your mover, so your return delay would look like... 1000 #INF.

To make a multiple section mover...

    You can use the Ezy-Mover-Mode, or type the XYZ for each section into the Position box.  0 5 0 5 0 0 0 -5 0 -5 0 0 is an example, and it makes the mover move in a square back to its origin, and return in the opposing direction of the square.  You can have up to 4 sections.

To make a team only mover...

    Set your mover's password to team (teamname) where teamname is the team name.  So, it could look like team red, for the red team.

To make a group only mover...

    Set your mover's password to group (groupname) where groupname is the player group.  It can be friend, safe, admin, or SuperAdmin.

To make a score/money requirement/limit mover...

    Set your mover's password to score, or money, then greater, or less, then the value.  It could look like money greater 500 for a door so only people with a money amount of 500 or more can go through.

    Download

Not working?  Restore your old movers.cs.

    Download


Clock Mode

Ever wanted to make a clock, but were too lazy to do it?  Now, with just a hit of a brick, you can easily!  It even gives a dynamic digital time, so yeah.  But watch out, too many clocks does lag your server severely.  Operatable only by admins via a magic wand mode, and works best on 1x1 bricks.

    Download


Longer EW distance

Ever wanted to rotate that brick up there, but couldn't reach it?  Now, you can!  The EditorWand will work like a gun, so you can edit bricks far away!  This goes great with the zoom mod, so you can actually see what you're editing, in near full size!

    Download


Chat Colors

   This adds some colors to your chat hud, so if you type /(color), it'll make your text color that color, except for the name.  Type /help for a complete listing.  Also filters bad words out if you want to.  To add/remove filtered words, open rtb/bannedWords.txt, and follow the instructions there, or download the banned words list. 

    Download

    Download Banned Words List


Longer Brick Placement

This makes your brick placer shoot a longer distance.

      Download


Particle Delaggifier

This makes the FX brick not lag as much, by cutting the time the particles exist.

    Download


Help! It won't work!

Changing Player Settings

This'll teach you how to make your players crouch faster, run faster, run slower, and lots more!  First, open player.cs in rtb\server\scripts.  Go to line 528, by pressing Ctrl+G in notepad.  If Ctrl+G doesn't work, click format, and disable word wrap.  On the function on line 528, you can see all the player settings.  If you scroll a little bit down, there is maxForwardCrouchSpeed, which can be used to set your player's crouch speed.  A good fast speed is 100.  There are many more settings that are just a reset away, but I recommend that you back up your preferences before changing them.  To do that, after the end of the line, or the semicolon of the line, put a doubleslash and type the original settings.

Flashlight Mod

If you've wanted a flashlight for any reason, heres one.  Ok, so its not exactly a flashlight, as it resembles more of a spotlight, and its pretty unrealistic, but who cares!  This is Blockland!  Note:  This doesn't work as well as my light bricks.

    Download


Triggers

This adds some old triggers to your server.  I added a cash trigger, and a score reset trigger, but most of the other triggers were made by Thermoman.

Note that these triggers can only be spawned in F11. 

    Download


Force Admin Mod

This mod gives the user edit wand immediately when they use force admin.  Also, it alerts you when someone guesses the pass.

    Download


Automatic Persistance Loading

This'll teach you how to make an automatic persistance loader, like in my CityCvR map.

1.  Open the *.mis file of your mission.

2.  Add...

//*MapName* Loading Sequence
schedule( 30000, 0, *MapName*Msgexec);
function *MapName*Msgexec()
{
    messageAll("MsgPersistence", "\c2The *MapName* is being loaded.  Please wait...");
    schedule( 5000, 0, *MapName*Loadexec);
}
function *MapName*Loadexec()
{
    exec("rtb/data/missions/*MapName*.persistence");
    messageAll("MsgPersistence", "\c2Thank you for downloading *MapName*.");
}

...to the very bottom of your mission file.  This means after the "Object Write End" message.

3.  Replace "*MapName*" wherever it occurs with your map name.  This MUST be one word.  To make it easy, push Control+H in notepad.

4.  Edit the persistance file to be called "*MapName*".persistance.

5.  The next time you start the mission, it'll auto-load after 30 seconds.

Unarmed Safe Mode

 Credit to SpiderNinja

Suppose that you're on a Deathmatch game. You're trying to build and you keep getting killed. (Rhyme =D) Well, now there is a solution. Follow these instructions to make it so that you are invincible until you pull out a weapon

You will need to edit the following files located in rtb/server/scripts (or rtb/server/scripts/PTTA if you use BAC's): Player.cs; commands.cs; Weapon.cs.

First open Player.cs. Find (Ctrl F) Armor::damage and you should see this:

function Armor::damage(%this, %obj, %sourceObject, %position, %damage, %damageType)
{
   if (%obj.getState() $= "Dead" || %obj.client.isImprisoned)
      return;

Change it so it looks like this:

function Armor::damage(%this, %obj, %sourceObject, %position, %damage, %damageType)
{

if(%obj.client.isdamagesafe){return;}
   if (%obj.getState() $= "Dead" || %obj.client.isImprisoned)
      return;

Save player.cs, and close it. (Since you will still probably want to suicide, let's make a person not damage safe when they need to respawn.) Now let's move on to commands.cs. Find (Ctrl F) function serverCmdSuicide and you should see this:

function serverCmdSuicide(%client)
{

if (isObject(%client.player) && %client.isImprisoned == 0 && %client.isTimeout != 1 && $Pref::Server::suicide)
      %client.player.kill("Suicide");
}  

Replace the entire function with this:

function serverCmdSuicide(%client)
{
    if(%client.isdamagesafe)
    %client.isdamagesafe=0;
    if (isObject(%client.player) && %client.isImprisoned == 0 && %client.isTimeout != 1 && $Pref::Server::suicide)
      %client.player.kill("Suicide");
}  

Save commands.cs, then close it. Now open Weapon.cs. Find //fixArmReady(%obj); and you should see this:

// Images assume a false ammo state on load.  We need to
   // set the state according to the current inventory.
    commandtoClient(%obj.client,'showBrickImage',"");
    //fixArmReady(%obj);
    if(%this.armReady)

Right below //fixArmReady(%obj); add %obj.client.isdamagesafe=0; so it looks like this:

// Images assume a false ammo state on load.  We need to
   // set the state according to the current inventory.
    commandtoClient(%obj.client,'showBrickImage',"");
    //fixArmReady(%obj);
    %obj.client.isdamagesafe=0;
    if(%this.armReady)

Save weapon.cs then close it. You are now done!

Automatically Spawn with an Editor Wand

Tired of people spawning in your server always asking for an EW? Well now, whenever they spawn, they will get an Editor Wand! But wait, there's moar! Well.. nothing really.

If you don't have Bac's Pack, follow these instructions:

Open rtb/server/scripts/game.cs and search for %this.secure = 1;
You should see:
 
 %this.secure = 1;
 messageClient(%this,'',"\c2You were automatically put in secure mode");
 %this.SafeListNum++;
 %this.SafeList[%this.SafeListNum] = %this;
 %this.FriendListNum++;
 %this.FriendList[%this.FriendListNum] = %this;
   }
 
Replace that with:
  %this.secure = 1;
 messageClient(%this,'',"\c2You were automatically put in secure mode");
 %this.SafeListNum++;
 %this.SafeList[%this.SafeListNum] = %this;
 %this.FriendListNum++;
 %this.FriendList[%this.FriendListNum] = %this;
 %this.isEwandUser = 1;
 servercmdAddtoInvent(%this, 6 ,$StartSpecial)
   }

 If you have Bac's Pack, follow these instructions:

Open rtb/server/scripts/PTTAgame.cs and search for %this.secure = 1;
You should see:
 
 %this.secure = 1;
 messageClient(%this,'',"\c2You were automatically put in secure mode");
 %this.SafeListNum++;
 %this.SafeList[%this.SafeListNum] = %this;
 %this.FriendListNum++;
 %this.FriendList[%this.FriendListNum] = %this;
   }
 
Replace that with:
 
  %this.secure = 1;
 messageClient(%this,'',"\c2You were automatically put in secure mode");
 %this.SafeListNum++;
 %this.SafeList[%this.SafeListNum] = %this;
 %this.FriendListNum++;
 %this.FriendList[%this.FriendListNum] = %this;
 %this.isEwandUser = 1;
    }

Spiderninja's "Person Mod"

+*+*+*+Size Alteration Commands+*+*+*+
People love to mess with these on my server, so I decided to post them. Copy and paste this into rtb/server/scripts OR rtb/server/PTTA if you have BAC's Pack.
//##########################################
//###Spider Ninja's Size Alteration Commands
//##########################################
   if(getword(%a2,0) $= "/bigme"){
   %sender.player.setScale("5 5 5"); 
    messageAll('name', '\c0%1 Is now scaled to 5 5 5.', %sender.name, %action);
   return;
   }
   if(getword(%a2,0) $= "/kingkongme"){
   %sender.player.setScale("25 25 25");
    messageAll('name', '\c0%1 is now King Kong! O_O', %sender.name, %action);
   return;
   }
   if(getword(%a2,0) $= "/shrinkme"){
   %sender.player.setScale("0.2 0.2 0.2");
   messageAll('name', '\c0%1 stepped in front of a shrink ray!', %sender.name, %action);
   return;
   }
   if(getword(%a2,0) $= "/normalme"){
   %sender.player.setScale("1 1 1");
   messageAll('name', '\c0%1 is back to normal size.', %sender.name, %action);
   return;
   }
    if(getword(%a2,0) $= "/spidermanme"){
   %sender.player.setScale("1 1 -1");
   messageAll('name', '\c0%1 is now Spiderman!', %sender.name, %action);
   return;
   }
//These are "Abusive". XD  
 if(getword(%a2,0) $= "/voiceme"){
                %sender.isVoiced = true;
                %sender.incScore(-10);
   messageAll('name', '\c0%1 is now voiced.', %sender.name, %action);
   return;
   }
    if(getword(%a2,0) $= "/morepoints"){
                %sender.incScore(20);
      return;
   }
    if(getword(%a2,0) $= "/lotsmorepoints"){
                %sender.incScore(50);
      return;
   }
   if(getword(%a2,0) $= "/paperme"){
   %sender.player.setScale("0.0001 1 1");
   messageAll('name', '\c0 Looks like %1 walked into a giant compressor... ', %sender.name, %action);
   return;
   }
  if(getword(%a2,0) $= "/pancakeme"){
   %sender.player.setScale("1 1 0.1");
   messageAll('name', '\c0 %1 just got an anvil dropped on his head!', %sender.name, %action);
   return;
   } 

Non EW/Pinking

A script by Spiderninja that makes it so you cannot pink or EW someone.

ewpaintfix.zip

Spiderninja's Message.cs Mods

I have received several requests to release my message.cs with its colored username/chat.

 I've included some other stuff in it, such as:

-Fixed /me command 

-Edited /announce command

-Added /admin command (Messages Admins Only)

-Added /namecolor and /chatcolor commands

-Added a messageHost function

-Improved Swear Filters

    -If you want the swear filters to work, download my BannedWords.txt 

-Made local and team chat readable by host

Click here to Download!

Fix Item Costs

This is for bacs pack, those of you scripters should be able to adapt to normal RTB. Tutorial and files coming soon.

Download player.cs, weapon.cs and copy it to the location given.

Overwrite your current files.

Normal:

itemcost.zip

For Bacs:

 player.cs weapon.cs


Manual Instructions:

Open rtb/server/scripts/player.cs

Bacs Users:
Open rtb/server/scripts/ptta/player.cs

Find:

messageClient(%client,

'','\c4Please use your \c0Use\c4 Key!');

Full code:

if

($Pref::Server::ItemsCostMoney $= 1)

{

messageClient(%client,

'','\c4Please use your \c0Use\c4 Key!'); return;

}

Replace with:

if($Pref::Server::ItemsCostMoney $= 1)

{

//messageClient(%client,'','\c4Please use your \c0Use\c4 Key!'); if(%client.money < %col.cost && %isThrown !$= 1)

{

messageClient(%client,

'MsgNoAfford', '\c4You can\'t afford this Item!');

}

if ((%client.money >= %col.cost) || $Pref::Server::ItemsCostMoney == 0 || %obj.thrown $= 1)

{

%obj.pickup(%col);

}

return;

}

Open rtb/server/scripts/weapon.cs

Bacs users:
Open rtb/server/scripts/ptta/weapon.cs

Find:

bottomPrint(%client,

"Press <B> to Buy this Weapon!",0.5,1);

Full code:

if

(%client.WantBuy != 1 && $Pref::Server::ItemsCostMoney $= 1 && %this.cost > 0)

{

bottomPrint(%client,

"Press <B> to Buy this Weapon!",0.5,1);

}

Replace with:

//if(%client.WantBuy != 1 && $Pref::Server::ItemsCostMoney $= 1 && %this.cost > 0)

// {

//bottomPrint(%client,"Press <B> to Buy this Weapon!",0.5,1);

// }

Find just below:

if($Pref::Server::ItemsCostMoney $= 1 && %client.money < %this.cost && %client.WantBuy $= 1)

Replace with:

if($Pref::Server::ItemsCostMoney $= 1 && %client.money < %this.cost)

Find a bit more below:

if

(($Pref::Server::ItemsCostMoney == 1 && %client.money >= %this.cost && %client.WantBuy == 1)|| $Pref::Server::ItemsCostMoney == 0)

 

Replace with:

if (($Pref::Server::ItemsCostMoney == 1 && %client.money >= %this.cost)|| $Pref::Server::ItemsCostMoney == 0)

Appearance Block

This blocks the person from changing their apperance on your server.

Can be used if you wish to give someone an apperance after choosing a class in an RPG.

Open rtb/server/scripts/ptta/serverCmd.cs for bacs

Or rtb/server/scripts/servercmd.cs for normal RTB

Find:

function ServerCmdUpdatePrefs


Below you should see:

if($pref::server::copsandrobbers)
{
return;
}

add this below:

if($pref::server::RPGGame)
{
return;
}

When running your RPG simply enter:

$pref::server::RPGGame = 1;

Into the console to turn apperance blocking on or

$pref::server::RPGGame = 0;

into the console to turn apperance blocking off.

iSchorle's Team Spawns for Bac's Pack

Notice: There was a problem with the wand mode but it is fixed now. Thanks to Demian for pointing it out.

These team spawns are made to work with bacs pack.

iSchorle created them and I did a bit of bug fixing.

These are based on the tutorial by Bleh.

Extract into your rtb as you would with any mod.

Team Spawns For Bacs < Click to download.

Updated Server Announcements

Open rtb/server/scripts/message.cs

If you have bac's installed go to:

rtb/server/scripts/PTTA/message.cs

Find:

if(getSubStr(%a2, 0, 9) $= "/announce" && (%sender.isSuperAdmin || %sender.isAdmin))

Full Section:

if(getSubStr(%a2, 0, 9) $= "/announce" && (%sender.isSuperAdmin || %sender.isAdmin))

{

%action = getSubStr(%a2, 10, strlen(%a2)-10);

if( %action !$= "")

bottomprintall( %action, 10, 1);

//messageAll('name', '\c3%1', %message); return;

Replace With:

if

(getSubStr(%a2, 0, 9) $= "/announce" && (%sender.isSuperAdmin || %sender.isAdmin))

{

%action = getSubStr(%a2, 10, strlen(%a2)-10);

if( %action !$= "") //bottomprintall( %action, 10, 1);

messageAll(

'name', '\c3Announcement: \c2%1', %action);

centerprintall(%action, 8, 1);

//centerprint(%client,"Please do not swear.",5,1);

return;

Restart RTB and your done.

Disable Decal Placing

Open rtb/server/scripts/tools/wrench.cs

Or in bacs: rtb/server/scripts/PTTA/wrench.cs

Find:

//Wrench in Decal-Mode

Full Script:

//Wrench in Decal-Mode

if(%obj.client.WrenchMode == 4 && (%col.FXMode $= "" || %col.FXMode $= 0))

{

%isTrusted = checkSafe(%col,%obj.client); if(%col.Owner == %obj.client || %isTrusted ||%obj.client.isAdmin || %obj.client.isSuperAdmin) { %obj.client.selectedbrick = %col; %hole = %col.getdatablock().getname(); commandtoclient(%client,'Openbrickprintselect',%hole); }

}

Replace WIth:

//Wrench in Decal-Mode

if(%obj.client.WrenchMode == 4 && (%col.FXMode $= "" || %col.FXMode $= 0))

{

centerprint(%client,

"Please do not place decals.",5,1); //%isTrusted = checkSafe(%col,%obj.client); //if(%col.Owner == %obj.client || %isTrusted ||%obj.client.isAdmin || %obj.client.isSuperAdmin) //{ // %obj.client.selectedbrick = %col; // %hole = %col.getdatablock().getname(); // commandtoclient(%client,'Openbrickprintselect',%hole); //}

}

Open rtb/client/scripts/client.cs

Repeat If Bac's In: rtb/client/PTTA/client.cs

Find:

function clientcmdOpenbrickprintselect(%tttt)

Full Script:

function clientcmdOpenbrickprintselect(%tttt)

{

createprintgui(%tttt

@"Prints");

canvas.pushdialog(%tttt

@"Prints");

}

Replace with: 

//function clientcmdOpenbrickprintselect(%tttt)

//{

// createprintgui(%[email protected]"Prints");

// canvas.pushdialog(%[email protected]"Prints");

//}

Chat Box


Server List

Downloads

Media