MCLawl

**MCLawl** is a mcw:Classic mcw:Minecraft server software written in C#, developed and coded by *Zallist*, *Lawlcat*, and *Valek*. Originally, the software was a mod of MCSharp done by *Zallist*. Due to personal reasons, *Zallist* was unable to continue production. The project was then passed over to *Lawlcat*, who renamed it **MCLawl**. Sometime later, *Zallist* returned to continue development.

Currently, *Lawlcat* has ceased further development and has released MCLawl in open source, for variations see MCLawl Forks

A video guide on how to set up the server for Windows is located here.

**Note:** It is well known that some anti-virus software incorrectly notify the IRCBot as a trojan.

# Ranks

MCLawl has a ranking system to encourage building and discourage mcw:griefing, as well as set apart admins from visitors.

### Default Ranks

The default ranks available on MCLawl are as follows:

* **owner** - he is the host of the server and anyone regarded as deserving the spot. Has access to every command.
* **co\_owner** - he is the 2nd host of the server and anyone regarded as deserving the spot. Has access to almost every command.
* **admin** - Someone who has proven themself to be helpful and capable of using the /ban and extended block limits without causing grief.
* **overlord**-Someone that is known for good rights and has never griefed also a person that helps owner and co-owner a lot. Also he has been rewarded for making worlds.
* **superop**- someone that is helpful, trusty and has earned OP-training also who knows the commands well.
* **op** - Someone that has proven themself that they have passed the optest and are ready for superop.
* **advbuilder** - People who have built extremely good builds on the server earn this rank, which comes with access to almost every build command.
* **builder** - People who have built something considered "good" in the Guest map. Capable of going to and building on more maps than they were able to as a builder, as well as getting some Build commands.
* **guest** - New people to the server. Are only capable of building on the Main maps, and have very limited access to commands. This rank is generally where griefers are found, and dealt with. To advance from here one must usually build something good, or be extremely friendly to others.

### Default Limits

Each rank has a limit on how many blocks it may edit in a single command. The defaults for MCLawl are as follows:

* **Server god!** - unlimited blocks
* **Operator** - unlimited blocks
* **AdvBuilder** - unlimited blocks
* **Builder** - unlimited blocks
* **Guest** - unlimited block
* **Banned** - none block (effectively none, as very few commands are allowed banned players)

All ranks, rank limits, and rank colors may be customized by editing the *ranks.properties* file in the *properties* folder.

# Commands

The command list is too big and requires its own wiki page, found here: MCLawl Commands.

## Chat commands

@ <player> <text> - Sends <text> as a private message to <player>.

```
# <text> - Sends <text> viewable only by OPs.
%[0-9/a-f] - All text immediately following the code to the end of the line will be colored.
The colors are, in order: black, navy, green, teal, maroon, purple, gold, silver, gray, blue, lime, aqua, red, pink, yellow, and white.
> or < - When at the end of a message line, allows it to be extended another line. ">" adds a line and a space, while "<" just adds a line.

```

### Emotes

Emoticons are included in chat, some with shortcuts such as :D or <3.
(darksmile)

```
(smile)
(heart)
(diamond)
(bullet)
(hole)
(male)
(female)
(sun)
(right)
(left)
(double)
(half)
(uparrow)
(downarrow)
(rightarrow)
(up)
(down)

```

### Variables

Variables can be given in messages to replace actual data.They can be placed in any message (message blocks, mail, normal chat) and they will be converted for the receiving user.

```
$name - Displays the receiving user's name
$date - Displays the current date (server-date)
$time - Displays the current time (server-time)
$ip - Displays the receiving user's IP
$color - Displays the user's color name
$rank - Displays the user's rank
$level - Displays the user's level name
$deaths - Displays the user's number of deaths since (first) login
$money - Displays the total money the user owns
$blocks - Displays the total blocks modified by the user
$first - Displays the first time the user logged in
$kicked - Displays the total number of times the user has been kicked
$server - Displays the Server's name
$motd - Displays the server's MOTD
$irc - Displays the IRC server and channel name

```

### Custom Commands

MCLawl also supports custom commands. A sample list of custom commands can be found here.
$name - Displays the receiving user's name
$date - Displays the current date (server-date)
$time - Displays the current time (server-time)
$ip - Displays the receiving user's IP
$color - Displays the user's color name
$rank - Displays the user's rank
$level - Displays the user's level name
$deaths - Displays the user's number of deaths since (first) login
$money - Displays the total money the user owns
$blocks - Displays the total blocks modified by the user
$first - Displays the first time the user logged in
$kicked - Displays the total number of times the user has been kicked
$server - Displays the Server's name
$motd - Displays the server's MOTD
$irc - Displays the IRC server and channel name

# Block types

Too many blocks for one wiki page, all can be found on MCLawl's Blocks page.

# Physics

An incredibly robust physics system is in place, which allows each map to work by itself, meaning it's much more stable. If one map gets a shutdown, other maps won't also shutdown. When a map does shutdown on physics, it will keep its current level of physics, instead of shutting off.

Physics can also be undone by typing "/undo physics [seconds]".

* Active water and lava
* More doors
* Blocks which change colors (rainbow blocks)
* Exploding TNT (with a real lava explosion) [Physics 3]
* Active water and lava that kills
* Train blocks which move along a set path, choosing their way as they go along.
* Blocks which move in set directions and repeat **[ALPHA]**
* Door\_air that allows water to flow through it **[ALPHA]**
* Switches
* Birds that move based on an RNG
* Fishes that move based on an RNG
* Doors activate every other door it touches
* Faucets which drip water or lava randomly
* Fire which engulfs and destroys (if Adv+ physics are on) wood/plants/cloth, leaving behind ash and grime which disappears given time.
* Rockets which can be aimed in any direction and fired in that direction, exploding on impact
* Finite water/lava modes, where every active water/lava is turned finite
* Individual liquids which are finite
* The possibility to make any block act like a "finite" liquid using "/rp finite 10"

### Custom physics

Physics can also be custom set, with the "/restartphysics" command, on any block.

For instance, you can make any block act like finite water by typing "/rp finite 10"
Possible types include:

* wait [time]
* drop [probability]
* explode [probability]
* dissipate [probability]
* finite [unneeded]
* rainbow [1 for random, 10 for sequence]
* revert [block type]

# Tips and tricks

A list of helpful, "hidden" features which are good, but don't fit anywhere else are as follows.

* Falling water and lava blocks, like waterfall and finite\_lava will stop when they touch static water or lava. (lava created with "/z lava")
* '!' can be used for commands, as well as '/'
* The server host will load maps nigh' instantly
* Custom MOTDs can be set for the server, or map-MOTDs can be set for each map, using the "/map" command
* You will automatically un-afk when you return from being afk
* door\_green tricks:
	+ Rocketstarts near door greens will be fired as though a user clicked them
	+ Firework blocks will also be fired by door\_green
	+ Nearby TNT will be activated by door\_green
* Trains can be ridden by /ride, and are much smoother if the tracks are properly cornered
* Shorthand names can be used for player names and levels
* Maps can be set to not be unloaded with load-on-goto on by typing "/map unload"
* TNTs can be activated by hitting them with other explosions

# Other features

* Every block change is recorded and easily accessible through /about
* Portals
* Colored chat text
* Message blocks
	+ Use /mb [block] [message] to define your message before you put your block down
* Custom console which
	+ Shows commands and chat separately (unless you are running it on mono)
	+ Shows all loaded maps
	+ Shows every logged in player
	+ Allows any written command, rather than 4 buttons (unless you are running it on mono)
	+ Has the ability to change properties of the server
* Deaths:
	+ Can be from exploding TNT
	+ Some blocks kill when you step into them
	+ Death count
* MySQL integration
* Advanced physics
* Ability to change the speed of physics
* An Inbox feature which allows offline messages
* Variables in messages
* Customizable default message color
* A working Player Database which stores:
	+ The player's last used IP
	+ The first time the player logged in
	+ The last time the player logged in
	+ The total number of logins the player has done
	+ The player's Title (if given one)
	+ The total deaths the player has had
	+ The total number blocks modified by the player
	+ The total number of times the player has been kicked
* Ability to change the build-command limits of each rank easily.
* Ability to change which ranks get which commands.
* A structured help list.
* "short"/nicknames, so you don't need to type a full name.
	+ Example: You can type "/kick this" to kick "thisguy234639"
	+ Also works for level names
* A graphical user interface for changing the server properties (unless you are running it on mono)
	+ Accessible from the server's main window, but some settings require a server restart for to take effect
	+ Allows the server host to change almost any property of the server, from rank colors and commands, to the server's name and port used.
* Zones which allow only set people or ranks to build inside.
* Finite water.
* Finite faucets.
* Custom physics (the ability to turn anything "finite"; E.G: Melt)
* Properties for the server can be updated in real time
* An auto-afk system, and kick-on-afk system, where users are set to afk when not moving for XX seconds, and kicked if they stay afk for XXX seconds.
* Each map has its own physics thread, meaning they are much more stable and independent
* Automatic updating
* A load-on-goto feature which loads and unloads maps as they're requested and unused
* A low-quality graphics mode is available for the console, which may make it run better on bad computers
* Emoticons (toggleable in server properties)
* Console now accepts all commands, console can be toggled between CLI/GUI by changing the Viewmode.cfg file.
* Level properties such as physics are remembered even when unloaded
* Main's name can now be changed in the server settings

# Linux and Mac OS X Help

To run MCLawl on Mac OS X, you can download mono [1].
Then you open Terminal (Applications/Utilities) and change the directory to where MCLawl is stored.
Open server.properties and change the MySQL information to what you set up and change mono to true.
If you don't have a MySQL server, you can download XAMPP (Win, Mac, Linux) or MAMP (Mac) and set that up.
Then you need to open Viewmode.cfg and change CLI to true.
To start the server type 'mono MCLawl.exe' and it will start the server.