001 to ODK Cheat Sheet

Welcome to the gateway of seamless transition from 001 Game Creator to the ever-expanding world of Open Dev Kit! In this comprehensive cheat sheet, we’ll draw parallels of ODK’s features to their counterparts in 001 Game Creator. Whether you’re familiar with switches, sprites, or actor templates in 001, this guide will help you navigate ODK’s new development environment. Keep reading below to realize the possibilities that ODK has to offer, building upon the foundation you’ve laid in 001 Game Creator thus far.
 

Script Events

Functions

Events are now properly called Functions, and can be found in the Script Editor, similar to 001.
 

Custom Events

Functions

Custom events are now properly called Functions, which can be setup on a per-project basis and are found in the Script Editor, similar to 001.

Game Templates

  1. Click on the Functions Editor in the toolbar.
  2. Click the “Create Function” toolbar button.

Advanced Method

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Function” toolbar button.

Triggers

Events

Triggers are now properly called Events, and can be found in various places such as in Scene elements (Actors, Cameras, Lights etc.) or Instances (Maps, Interfaces etc.).
 

Controls/Input-Sets

Keybinds

Similar to 001, controls and input-sets are managed in the Keybinds Editor (Game Templates) or the Resources Editor (Advanced). Each Keybinds resource can be enabled or disabled, similar to enabling/disabling Input-Sets. The process is now much more streamlined, as every key is presented right in front of you.

Game Templates

  1. Click on the Keybinds Editor icon in the toolbar.
  2. Click the “Create Keybinds” toolbar button to create a new set of keybinds or double-click an existing one to edit it.

Advanced Method

  1. Click on the Resources Editor icon in the toolbar.
  2. Click the “Create Resource” toolbar button.
  3. Double-click “Keybinds” under the “Game” category.

Global Variables

Variables

Global Variables in ODK, created in the Globals/API Editor, let you define and manage project-wide data types, much like the Variables in 001.

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Variable” toolbar button.

Set the variable’s Type according to what data you need it to store. For example, “Integer” for numbers without decimals, “Float” for numbers with a decimal part, “String” for alphanumeric characters such as numbers and letters together (text), etc…
 

Switches

Variable of Type “bool”

Switches in 001 are akin to boolean variables in ODK, managed in the Globals/API Editor and offering the same logical functionality.

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Variable” toolbar button.
  3. Set the Type to “bool” for a boolean variable similar to switches.

Collections

Variable with “Array” Flag

In ODK, Collections are replicated by using Variables with the “Array” Flag, a feature accessible in the Globals/API Editor, mirroring the functionality in 001.

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Variable” toolbar button.
  3. Check the “Array” Flag box to replicate a collection like in 001.

Tables

Class with “Array” Flag Variable + Variable

You can replicate the behavior of 001 Tables in ODK, by having multiple classes with nested arrays (serving as dimensions) with each pointing to their previous one, and then use a variable (unnested) which is going to be representing the table itself.
Note that it is also possible have as many nested arrays of classes as you want, opening possibilities for a few cool things to do.

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Class” toolbar button. This should be repeated as many times as the desired number of table dimensions (e.g. “Table_X”, “Table_Y”, “Table_Z”, all these separate classes are required for a 3D table).
  3. Click the “Create Variable” toolbar button.
  4. Set the Type of the first dimension (nested variable of the first class) to whatever data you need it to store and make sure to check the “Array” Flag box.
  5. Then for every other class’s variable set its Type to be pointing to the previous class/dimensions. (for example, “Table_Z” should have it’s Type set to “App.Table_Y”). And make sure to check the “Array” Flag box for all these as well.
  6. Click the “Create Variable” toolbar button while making sure none of the classes are selected, as this variable shouldn’t belong to any class whatsoever.
  7. Set its Type to the name of table’s last dimension/class (in the case of a 3D table, it should be “App.Table_Z”).

To get a better understanding of replicating tables in Open Dev Kit, please take a look at a more real-world example below, specifically using examples of 1D, 2D, and 3D arrays:
 

Collection/1D Table:

This involves a variable of a class that has any number of members (properties or attributes). For example:
Object.Color = "Red"
Object.Variety = "Fox"
 
Alternatively, you can use an array of strings:
Collection_X(5) = "Value"
 

2D Table

This involves an array of a class that has any number of members. For example:
Table2D(5).Color = "Red"
Table2D(5).Variety = "Fox"
 
Alternatively, you can have an array of a class that itself has an array of strings:
Table2D_X(5).Table2D_Y(3) = "Value"
 

3D Table

This involves an array of “ClassA” that has an array member of another “ClassB” that has any number of members. For example:
Table3D(5).Location(3).Color = "Red"
Table3D(5).Location(3).Variety = "Fox"
 
Alternatively, you can have an array of “ClassA” that has an array member of another “ClassB” that itself has an array of strings:
Table3D_X(5).Table3D_Y(3).Table3D_Z(7) = "Value"
 
While we do realize that this is indeed a somewhat roundabout way of replicating the behavior of tables in Open Dev Kit, we’d like to inform you that there will eventually be multi-dimensional arrays with support for unlimited dimensions (whereas 001 only had up to 3).
 

Sprites/Tile-Sets

Resources or Tiles/Sprites Editor

Manage your sprites and tile-sets easily in the Tiles/Sprites Editor (easily accessible from the toolbar) or take a more advanced approach using the Resources Editor.

Game Templates

  1. Click on the Tiles/Sprites Editor icon in the toolbar.
  2. Click the “Create Sprite” toolbar button.

Advanced Method

  1. Click on the Resources icon in the toolbar.
  2. Click the “Create Resource” toolbar button.
  3. Double-click “Sprite” under the “Game” category.

Tiles

Tile-Patches

When you pick a tile from the tiles tab in the scene editor and place it on the map, a “Tilepatch” is spawned. A “Tilepatch” is essentially a collection of individual tiles which are grouped together.
 

Actors/Doors/Pickups/Fields

Actors or Characters

While having a Scene loaded, double either an “Actor” or “Character” to place it.
“Actors” are generic game scene objects, while “Characters” contain extended RPG-specific scripting.
 

Custom Actor Properties

Class of Type “Actor” + Property

In order to add new properties to the base actor class, you must create a new class and have it inherit the properties of the actor class. Then you can add your own custom properties to the new class.

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Class” toolbar button.
  3. Set the Base Type to “Actor”.
  4. Click the “Create Variable/Function/etc.” to add new properties to your actor.

Custom Character/Item Properties

Class of Type “Character” or “Item” + Property

In the RPG template, you can modify the existing “Character” or “Item” classes directly to add new properties or functionality.

  1. Click on the Globals / API Editor in the toolbar.
  2. Select the “Character” or “Item” class.
  3. Click the “Create Variable/Function/etc.” to add new properties to your character/item.

Map/Interface Properties

Map/UI Class + Property

Each scene resource has a corresponding class. You can add properties, functions, etc. directly to the scene by modifying that class. Please note you must have “Intermediate” difficulty mode enabled in user options to see scene classes.

  1. Click on the Globals / API Editor in the toolbar.
  2. Expand the “Maps/UI” folder (Or the location of the Scene resources of the project)
  3. Select a Map/UI class object (such as “_Res_Forest” or “_Res_HUD”).
  4. Click the “Create Variable/Function/etc.” to add new properties to your map/interface.

Actor Templates

Class of Type “Actor”

In order to create the equivalent of an actor template, you must create a new class and have it inherit the properties of an existing class. Then you can add your own custom properties to the new class.

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Class” toolbar button.
  3. Set the Base Type to “Actor”.

NOTE: If you wish to have the RPG-specific scripting for your template then use “Character” or “Item” as Base Type instead.
 

Party

Party Array Global Variable of Type “Character”

Parties are a pre-defined global variable array of type “Character” that are used by the default RPG templates scripting.

  1. Click on the Party icon in the toolbar. (Game Templates)
  2. Click on the Globals / API Editor in the toolbar. (Advanced Method)
  3. Select the “gParty” entry.
  4. Change Party size by clicking “+” or “-” beside Default Object.

Statistics

Statistics Class

In the RPG template, statistics have been set up for you via the “Stat” and “Statistics” classes. You can easily create or remove any of the existing statistics to suit your projects needs.

Game Templates

  1. Click on the Statistics Editor in the toolbar.
  2. Click the “Create App.Stat” toolbar button.

Advanced Method

  1. Click on the Globals / API Editor in the toolbar.
  2. Select the “Statistics” class.
  3. Click the “Create Variable” toolbar button.
  4. Set the Type to “Stat”.

List Parameter Type

Enumeration + Constants

In order to create list parameters for custom functions or editor properties, you can create them directly within the API editor and reuse them throughout your project.

  1. Click on the Globals / API Editor in the toolbar.
  2. Click the “Create Enumeration” toolbar button.
  3. With the enumeration selected, click the “Create Enumeration/Flag Constant” toolbar button.

Networking Events

Functions with Networking Flags

Networking functions allow a server to run the client, or vice-versa. Please note you must have “Advanced” difficulty mode enabled in user options to see networking flags.

  1. Click on the Globals / API Editor in the toolbar.
  2. Select the function you wish to turn into a networking event and check the desired Network Flags