User Tools

Site Tools


scripting

~~DISCUSSION:off~~

World Scripting Overview

Introduction to World Scripting

The world server allows owners to make little old games without any coding knowledge at all.. set up some buildings, add some models and fiddle with some settings and you can create quite different environments using the basic game framework.

If you want to make something particularly unique you'll need to start delving into the scripting language, through which you can control pretty much everything the server can do. Using the custom scripting language you can create new behaviours for items and scenes on your world, add screens, buttons, cutscenes and special effects. Although the scripting language is fairly simple, you will require some knowledge of programming to understand and make the most of the features on offer. Check here for an introduction to the language, and a description of the general format and limitations, and for further in-depth specifications of the individual script commands, check the 'Scripting Language Reference'.

Event Scripting

'Events' are triggered on the server when certain things happen on your world. For example, a certain event is triggered when someone builds a new building. In most circumstances, the server itself handles the normal processes involved in the event - i.e. When someone builds a new building, the server automatically handles the adding of the new building to the map, replication of the new building out to other players, initialisation of the contents of the new building, etc etc - then the script is called so you can do extra custom things.

As an initial example - perhaps you want to have a special building that when built, awards your players with a special item. The simple script to do this might look something like..

Event( "NewBuilding", "3" ) 
{ 
  *say %PLAYER% built building type 3 
  *grantitem %PLAYER% 1 Special Item
} 

If you've already been playing around with owner features on your world, then the *commands might already be familiar - Just about anything you can do using the commands on the server you can do through the scripting system - which gives the script system all the power you get as a world admin.

For details on the range of events supported see the Event Scripting Overview and for a full list of the *commands see the reference section.

Script Files

The primary 'script' a server runs is stored in a file called Data\Scripts\ServerScript.mit - this is a text file that can contain commands and scripted events ( You can include other files (see #include docs) ). To change your script file, modify it in a text editor (or in the in-game editor when its finished) and then tell the server to reload it by pressing F11 (or using the command *reloadscript).

For a quick Hello World example.. Connect to your world, copy the code block below into your serverscript.mit, press f11 then type &test

Event( "&command", "test" )
{
    *say Hello World
}

Editing your script files

If you get heavily into scripting, you may find that using an IDE such as Microsoft Visual Studio helps make managing your script files a bit easier. A quick guide to setting that up can be found here.

The intention is that eventually the Script Editor in the F10 World Editor screens would provide that functionality however that is a long way from being complete or usable.

Custom Events

Custom Events are a special type of event that is triggered from a command and can include custom parameters. e.g. *event [Name] TestEvent|MyParam

will trigger an event specified in your script code like:

Event( "Custom", "TestEvent" )
{
   $text = $gTextParam[1]
   *say Your Parameter was $text
}

Custom events can be triggered for groups of players - e.g. for everyone online ('EventAllOnline'), or for everyone standing in a particular zone on the map.

scripting.txt · Last modified: 2023/05/15 02:07 by mit

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki