Coder Social home page Coder Social logo

scriptcraft's Introduction

Let's begin …

![Gitter](https://badges.gitter.im/Join Chat.svg)

I created ScriptCraft to make it easier for younger programmers to create their own Minecraft Mods. Mods are written using the JavaScript programming language. Once the ScriptCraft mod is installed, you can add your own new Mods by adding JavaScript (.js) files in a directory.

  • If you're new to programming and want to start modding Minecraft, then Start Here.
  • If you've already used Scratch, have attended a few CoderDojo sessions, or have already dabbled with JavaScript, then Start Here.
  • Watch some demos of what you can do with ScriptCraft.

This is a simple mod in a file called greet.js in the scriptcraft/plugins directory …

function greet( player ) {
  echo( player, 'Hello ' + player.name );
}
exports.greet = greet;

At the in-game prompt, type:

/js greet(self)

Anything you can do using the CanaryMod or CraftBukkit APIs in Java, you can do using ScriptCraft in JavaScript.

Description

ScriptCraft is a plugin for Minecraft Servers which lets operators, administrators and plug-in authors customize the game using JavaScript. ScriptCraft makes it easier to create your own mods. Mods can be written in Javscript and can use the full CanaryMod API or Bukkit API. ScriptCraft works with all of the following Minecraft Server software:

I recommend using CanaryMod because CraftBukkit is no longer being actively developed due to a legal dispute. The ScriptCraft mod also lets you enter javascript commands at the in-game prompt. To bring up the in-game prompt press the / key then type js followed by any javascript statement. For example: /js 1 + 1 will print 2.

ScriptCraft also includes many objects and functions to make building and modding easier using JavaScript. The JavaScript Drone object bundled with ScriptCraft provides an easy way to build at-scale in Minecraft. See the attached temple.js file for an example of how you can use the sample Drone plugin to create new buildings in Minecraft.

Prerequisites

  • You will need to have Java version 6 or later installed on your machine. Check the version by typing java -version at a command prompt.

  • You will need to install CanaryMod on your machine. CanaryMod is a customized version of Minecraft Server that makes it easy to install plugins and customize Minecraft. You can download the CanaryMod server here.

Installation

If you don't want to compile from source, you can download the compiled plugin here and copy it to the CanaryMod plugins directory.

Post Install

Once installed, a new scriptcraft/plugins directory is automatically created. All files in the scriptcraft/plugins directory will be automatically loaded when the server starts. Only players who are ops can use this plugin. You can grant a player op privileges by typing 'op ' at the server console prompt or by adding the player's username to the ops.txt file in your server directory.

Launch the server, then launch the Minecraft client and create a new server connection. The IP address will be localhost . Once you've connected to your server and have entered the game, look at a ground-level block and type …

/js up().box( blocks.wool.black, 4, 9, 1 )

… This will create a black monolith structure 4 blocks wide by 9 blocks high by 1 block long. Take a look at the src/main/javascript/drone/drone.js file to see what ScriptCraft's drone can do. If you're interested in customizing minecraft beyond just creating new buildings, take a look at the homes mod for an example of how to create a more fully-featured JavaScript plugin for Minecraft.

A JavaScript mod for minecraft is just a JavaScript source file (.js) located in the scriptcraft/plugins directory. All .js files in this directory will be automatically loaded when the server starts. To get started writing your own mod, take a look at some of the examples.

Additional information

Because the CanaryMod API is open, all of the CanaryMod API is accessible via javascript once the ScriptCraft plugin is loaded. There are a couple of useful Java objects exposed via javascript in the ScriptCraft plugin …

  • __plugin – the ScriptCraft Plugin itself. This is a useful starting point for accessing other CanaryMod objects. The __plugin object is of type net.canarymod.plugin.Plugin and all of its properties and methods are accessible. For example … js __plugin.name returns the plugin's name (JavaScript is more concise than the equivalent Java code: __plugin.getName() ).

  • server – The top-level net.canarymod.Server object. See the CanaryMod API docs for reference.

  • self – The player/command-block or server console operator who invoked the /js command. Again, this is a good jumping off point for diving into the CanaryMod API.

Docker

To launch a container with CanaryMod and ScriptCraft you can just do

  docker run -p 25565:25565 -it tclavier/scriptcraft

You can find all files used to build this container in github project: docker-scriptcraft

Contributing

If you would like to contribute source code and/or documentation changes please read contributing.md

Status

Travis Build Status

Bukkit Configuration

(You can ignore this if using CanaryMod)

ScriptCraft also works with Bukkit Plugin and uses the Bukkit Configuration API. On first loading, ScriptCraft will create a config.yml file in the plugins/scriptcraft/ directory. This file looks like this …

extract-js:
  plugins: true
  modules: true
  lib: true

This file allows scriptcraft admins to turn on or off re-unzipping of the modules, plugins and lib folders when deploying a new version of ScriptCraft. It's strongly recommended that the lib directory always be set to true to get the latest core ScriptCraft code . The modules and plugins directories are optional and not part of ScriptCraft core.

Further Reading

ScriptCraft has its own website with further information.

You can find more information about ScriptCraft on my blog.

Additional Resources

CoderDojo Athenry have some excellent tutorials for younger programmers who have used Scratch and are interested in Modding Minecraft using JavaScript. In particular, they have an excellent Scratch - to - JavaScript tutorial which explains Scratch programs and how to do the same thing in JavaScript.

I highly recommend the series of tutorials provided by CoderDojo Athenry.

Developer Chris Cacciatore has created some interesting tools using ScriptCraft …

scriptcraft's People

Contributors

alexbarnes86 avatar aplhk avatar atifaziz avatar carlrobert avatar cobbzilla avatar conoro avatar dirkk0 avatar edonaldson avatar f0086 avatar francois2metz avatar gitter-badger avatar jasonk avatar kellyfj avatar kmlawson avatar kylehowells avatar m4chinations avatar marcogerosa avatar nixnax avatar pvginkel avatar rupl avatar seapunk avatar shaneriley avatar tclavier avatar trmfreitas avatar walterhiggins avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.