FemtoCraft is a minimalistic Minecraft Classic server. It implements only the same features as vanilla server, plus various improvements and bugfixes. FemtoCraft is free/open-source software, available under BSD License. FemtoCraft requires either Microsoft .NET Framework 3.5 or 4.0 to run (client profile is sufficient), or Mono 2.10+
Features Download Commands Configuration Version History Source

Features

Commands


There are only two player ranks: regular (non-op) and op. All FemtoCraft commands require player to be an op, unless otherwise specified. List of ops is stored in admins.txt. Bans are stored in banned.txt. IP-Bans are stored in banned-ip.txt. Whitelist is stored in whitelist.txt. All commands except /bring, /grass, /lava, /paint, /setspawn, /solid, /teleport, and /water may be used from console. Commands marked with a star are specific to FemtoCraft, and not present in original Minecraft Classic server.
/ban <name>
Bans a player by name. If player is online, they are kicked.
/banip <name>
Bans an online player's IP address. Kicks all players who use this IP.
/banip <ip>
Bans a given IP address. Also kicks all players who use this IP.
/bring <name>
Brings another player to your location. This command cannot be used from console.
/broadcast <message>
Shows a message to all players on the server, highlighted in red.
Shortcut: /say <message>
/deop <name>
Demotes an op.
/gen X Y Z filename
Generates a new map with realistic terrain, and saves it to a given file. Filename must end with ".lvl". Note that X/Y dimensions are horizontal (width/length), and Z dimension is vertical (height/depth).
/genflat X Y Z filename
Same as /gen, but generated terrain is completely flat.
/grass
Toggles placement of grass blocks. When enabled, placed dirt blocks are replaced with grass. This command cannot be used from console.
Shortcut: /g
/kick <name>
Kicks an online player from the server.
Shortcut: /k <name>
/lava
Toggles placement of lava blocks. When enabled, placed red blocks are replaced with lava. This command cannot be used from console.
Shortcut: /l
/load <filename>
Replaces current map with one loaded from the given file. Only .dat and .lvl map files are supported for loading.
/op <name>
Promotes a player to op.
/ops
Shows a list of ops.
/paint
Toggles painting mode. When enabled, left-clicking a block replaces it instead of deleting it. Available to all players. This command cannot be used from console.
Shortcut: /p
/physics
Shows the enabled physics options on the server.
/physics on/off
Turns all physics on/off.
/physics <module>
Toggles individual physics modules. Modules are: grass, plants, sand, trees, water, lava.
/players
Shows a list of all online players.
/save <filename>
Saves current map to a given file. Only .lvl map files are supported for saving.
/setspawn
Sets a new spawn point for the map. This command cannot be used from console.
/solid
Toggles placement of admincrete blocks. When enabled, placed stone blocks are replaced with admincrete. This command cannot be used from console.
Shortcut: /s
/teleport <name>
Teleports you to another player. This command cannot be used from console.
Shortcut: /tp <name>
/unban <name>
Removes a ban on the given player.
/unbanip <ip>
Removed a ban on the given IP address.
/water
Toggles placement of water blocks. When enabled, placed blue blocks are replaced with water. This command cannot be used from console.
Shortcut: /w
/whitelist
If whitelist is enabled, shows a list of players who are allowed to join the server. Available to all players.
/whitelistadd
If whitelist is enabled, adds a name to the whitelist.
/whitelistremove
If whitelist is enabled, removes a name to the whitelist.

Configuration


Configuration is stored in server.properties file. If no file is found, FemtoCraft will generate a default configuration file. Options marked with a star are specific to FemtoCraft, and not present in original Minecraft Classic server.
server-name
Name of the server, as it will appear to connecting players and on minecraft.net server list. Up to 64 characters long. Default is "FemtoCraft Server"
motd
Message-of-the-day (MOTD) - Text to show to connecting players. Up to 64 characters long. Default is "Welcome to the server!"
port
Port number to run the server on. You will need to set up port forwarding. Should be between 1024 and 65535. Default is 25565.
ip
Internal IP address to bind to. Do not touch this setting unless the server machine has multiple IP addresses or NICs. Default is "0.0.0.0" (meaning "any").
max-players
Maximum number of playes to allow on the server. Should be between 1 and 128. Default is 20.
public
Whether the server should be listed on minecraft.net's public server list. Should be either "true" or "false". Default is "false"
verify-names
Whether player names should be verified with Minecraft.net. It is very dangerous to disable name verification; that allows players to impersonate others. Should be either "true" or "false". Default (recommended) is "true"
use-whitelist
Whether FemtoCraft should only allow players on the whitelist (whitelist.txt) to join. Should be either "true" or "false". Default is "false"
admin-slot
Whether the server should kick someone to make room for an op if the server is full. Should be either "true" or "false". Default is "true"
reveal-ops
If enabled, ops' names are highlighted in a different color in chat and in-game, and /ops command becomes available to all players. Should be either "true" or "false". Default is "false"
allow-emails
If enabled, players with email addresses (players without a paid Minecraft account) will be able to connect. Should be either "true" or "false". Default is "false"
heartbeat-url
Server to send heartbeats to. You don't need to touch this setting unless you use something other than Minecraft.net. Should be a valid URL. Default is "https://minecraft.net/heartbeat.jsp"
max-connections
Maximum number of non-op players that FemtoCraft should allow from a single IP address at a time. Should be between 1 and 128. Default is 3.
limit-click-rate
Whether to limit non-op players' clicking rate. Useful for blocking tool-assisted griefers and bots. If enabled, limits click rate to ~7.8/second, averaged over 6 seconds. Should be either "true" or "false". Default is "true"
limit-click-distance
Whether to limit non-op players' clicking distance. Useful for blocking tool-assisted griefers and bots. If enabled, limits click distance to ~7 blocks. Should be either "true" or "false". Default is "true"
limit-chat-rate
Whether to limit non-op players' message-sending rate. Useful for blocking spam bots. If enabed, limits chat rate to 0.75/second, averaged over 4 seconds. Should be either "true" or "false". Default is "true"
allow-speed-hack
Whether to allow non-op players to use speedhacks. If enabed, limits horizontal delta to 32 units/packet horizontal, upwards delta 24 units/packet, and packet rate to 40 packets/second (averaged over 5 seconds). Should be either "true" or "false". Default is "false"
op-max-connections
Same as max-connections, but applied to op players. Default is 3.
op-limit-click-rate
Same as limit-click-rate, but applied to op players. Default is "true"
op-limit-click-distance
Same as limit-click-distance, but applied to op players. Default is "true"
op-limit-chat-rate
Same as limit-chat-rate, but applied to op players. Default is "true"
op-allow-speed-hack
Same as allow-speed-hack, but applied to op players. Default is "true"
physics
Whether to enable/disable ALL physics. None of the physics behaviors run unless this is "true". Should be either "true" or "false". Default is "true"
physics-tick
Delay, in milliseconds, between physics "tick". The lower the value, the faster all physics behaviors run. Should be between 10 and 1000. Default is 50.
physics-flood-protection
Whether to disable liquids in upper half of the map. Useful to prevent massive accidental floods. Should be either "true" or "false". Default is "false"
physics-grass
Whether grass should grow/die on the server. Should be either "true" or "false". Default is "true"
physics-plants
Whether flowers and mushrooms should respond to their environment. If enabled, flowers can only grow in the sun on dirt or grass, and mushrooms can only grow in the shade on stone, gravel, or cobblestone. Should be either "true" or "false". Default is "true"
physics-sand
Whether sand and gravel should collapse. Should be either "true" or "false". Default is "true"
physics-snow
Whether snow should collapse and be meltable by lava/fire/magma. Only applicable when protocol-extension is enabled. Should be either "true" or "false". Default is "true"
physics-trees
Whether saplings should grow into full-size blocky trees. This setting was used to be known as grow-trees in original Minecraft Classic server. Should be either "true" or "false". Default is "false"
physics-water
Whether water should flow, spread, and be repelled by sponges. Should be either "true" or "false". Default is "true"
physics-lava
Whether lava should flow and spread. Should be either "true" or "false". Default is "true"
allow-water-blocks
Whether regular players can use /water command and place water blocks. Default is "false"
allow-lava-blocks
Whether regular players can use /lava command and place lava blocks. Default is "false"
allow-grass-blocks
Whether regular players can use /grass command and place grass blocks. Default is "false"
allow-solid-blocks
Whether regular players can use /solid command and place/delete solid (admincrete) blocks. Default is "false"
op-allow-water-blocks
Same as allow-water-blocks, but applied to op players. Default is "true"
op-allow-lava-blocks
Same as allow-lava-blocks, but applied to op players. Default is "true"
op-allow-grass-blocks
Same as allow-grass-blocks, but applied to op players. Default is "true"
op-allow-solid-blocks
Same as allow-solid-blocks, but applied to op players. Default is "true"
protocol-extension
Enabled Classic Protocol Extensions (CustomBlocks and SetBlockPermissions). Only affects clients that also support CPE. Default is "true"

Version History

1.35 — 2013-10-27
Fixed ops being checked against max-connections setting, instead of op-max-connections setting.
Added a config option to allow Mojanged (email-only) player names.
Fixed occasional unnecessary line-wrapping in messages.
Improved logging of sign-in problems.
1.28 — 2013-09-01
Added support for two Classic Protocol Extensions: CustomBlocks and BlockPermission.
Added protocol-extension and physics-snow configuration options.
1.06 — 2013-08-18
Added heartbeat-url configuration option.
1.03 — 2012-06-14
Fixed excessive "Map saved to ___" messages popping up every minute.
Ported LineWrapper fixes and improvements from fCraft to FemtoCraft.
1.00 — 2012-03-02
Added /gen (realistic terrain) and /genflat (flatgrass) commands, for creating new map files.
Added new configuration options to control whether guests/ops can use solid, water, lava, and grass blocks.
Added a packet-throttling system to prevent client disconnects during particularly huge floods.
Fixed /solid, /water, /lava, and /grass being usable from console.
Fixed generated tree appearance to match Minecraft Classic more closely.
Fixed stairs not stacking when physics are off.
Fixed server re-sending the packet back to client when deleting blocks.
0.92 — 2012-02-27
Added "reveal-ops" config key.
Fixed a bug that sometimes redirected commands to the caller instead of the target.
Fixed an offset error in /setspawn.
Map will now only be auto-saved if it has been modified since last save.
Fixed server announcing departure of players who haven't fully connected yet.
/Players is now automatically called for newly-connected players.
0.87 — 2012-02-27
/ops, /whitelist, and /players now sort players by name.
Fixed /save not working from console (thanks Hellenion)
Fixed /players (thanks Hellenion)
Fixed /setspawn not preserving look angle.
Fixed leading/trailing whitespace not getting stripped from commands typed in from console.
Added a slightly more graceful way to shut down the server - Ctrl+D in console (Ctrl+Z on Windows).
0.82 — 2012-02-26
Added feedback messages to /save
Added /players command
Fixed "/physics off" not working
Fixed a typo in /UnbanIP (thanks Moose)
Capped packet sending rate at 100/tick
Fixed "invalid cross-device link" error under Mono (thanks Hellenion)
0.77 — 2012-01-23
Initial release