Software Development Kit for Plugins

Download of Plugin SDK pack

Current Plugin SDK is updated to library release and 1.5 NG_Center version. Both programs are included in the package.
This is the link for download: Plugin_SDK_Store.rar (67.4 MB)

Guidance about Setup

As first step, decompress the rar file, preserving the folder hierarchy.
You could decompress it to "documents" folder, for instance.
Then, about tools installation, here you have an abstract of "READ_ME.txt" file that you find also in root folder of Plugin_Sdk_Store, once decompressed.

The better sequence of operations, to install all trng "stuff", is this:

1) Install (or verify to have already) a tomb raider level editor program on your computer.

2) Install MK5 NG_center, using the "mk5_ng_center_full_setup.exe" installer. You can get it from "PLUGIN_SDK_STORE\tools\MK5 NG Center - Setup" folder, or, as separate download, from "" web-site.

3) Once installed NG_Center, launch it, and try to fix all missing folders or path. Pratically you should try to get it operative, building the script and launching tomb4 program.
- It's surely necessary rebuild the script, to do work your level, and it's advisable also rebuild .tr4 files.
- It's advisable also to perform [NG Doctor] tool (that you find in [Tools2] panel) to verify that all works fine in this fresh installation.

4) Now you should quit ng_center program

5) Install TrngPatcher program.
TrngPatcher is main tool for plugins management (other that Visual C++ compiler, of coure)
You find the installer in "PLUGIN_SDK_STORE\tools\Trng Patcher - Setup" folder.

6) Once you installed the TrngPatcher program, you should launch it and:
- Set all folders required from the program in Settings window
- Using Help Menu command: [Help->Plugin References->How to create plugins - Tutorial (Plugin SDK)]
- Following the instructions about how to get the C++ compiler program (Installing Microsoft Visual Express 2010) to build your plugin (in the case you had not already a VC++ compiler program installed on your pc, of course)
- Then, following the track of above tutorial, you should load, in Visual C++ compiler, the starting plugin sources that you find in "PLUGIN_SDK_STORE\Plugin\plugin_trng_start_vc2010_sources" folder, or, if you mean using the old Visual Studio6 compiler, from "PLUGIN_SDK_STORE\Plugin\plugin_trng_start_vc6_sources" folder.

7) Last but not least tip, is this: please, try really to follow, step by step, at least first three Exercises: "The Magic Flare", "Lost in Space" and "The Cleaner Robot" exercise.

In these first chapters, indeed, it will be explained all basics about tomb4 raider procedures and global variables, the trng facilieties created to access to them, the 3d world geometry and collisions and how to create new moveables with (some) AI skills.

While, about other (following) exercises, they are like "advanced" lections, useful but not so necessary.

Documentation about Plugin SDK - Tutorials and Technical References

Note: All present on-line documentation is also stored in "Help_SDK_Tutorial" subfolder of PLUGIN_SDK_STORE folder

Main help file is "Plugin_SDK.htm": this document contains links to all other help files.


Main Help File: Tutorial for plugins Creation
Second part of Tutorial: Advanced part for programmers
Basics of C++ Language
Callbacks and TRNG Services
How to combine assembly with the C++ skills
How to customize Visual Express editor
How to debug your plugin code - Debugger Tutorial
How to create dynamically Script Commands
First Steps in Assembly
Functions Collection
Plugin run-time files
Meaning of C++ Source Files
          Sections of Main Source (Plugin_trng.cpp)
How to add new Triggers
How to change Version numbers
Visual Express 2010 - Installation and Setup

Main Help File: Tutorial for plugins Creation          

Link: Plugin_SDK.htm
Main help file. It describes the creation of pugin demo, step by step, level by level.
From this help document you find links to all other help files.
It's strongly suggested to start the study of plugin matter, from this help document.
Plugin_SDK.htm covers the description of first seven exercises in the demo level:

Exercise 1: the Magic Flare
Exercise 2: Lost in Space
Exercise 3: The Cleaner Robot
Exercise 4: Star Wars Robot
Exercise 5: The Swinging Crane
Exercise 6: Driving the Crane
Exercise 7: The MechWarrior

Second part of Tutorial: Advanced part for programmers

Link: Plugin_SDK_2.htm
It is natural continuation of Plugin_SDK.htm file.
The document should be the advanced section of plugin help file, suggested for programmers.
It will described many kind of callbacks and patches, with source examples that you can test in demo level.
This document contains description about six Example of demo level:

Example 1: callbacks fro trng numerical patches
Example 2: callback for collision procedure
Example 3: callbacks for floor and control procedures
Example 4: callbacks for Inventory
Example 5: Images and input box
Example 6: Numerical Patch

In spite the patch topic was for programmers only, the large description of callbacks it's interesting also for level builders

Basics of C++ Language

Link: basics_c_help.htm
This is an introduction to C language.
In my hoping, it should be understandable also for absolute beginners, just they had basic knowledgments about matematic and some experience about programming logic, like it happen for them worked with advanced scripting with NG_Scripter.

The triggergroups, condition triggers and organizers, are script commands that work in very alike way of programming instructions.

This help file should be read at least to be able to understand the C++ source samples showed in Plugin_SDK.htm file.

Callbacks and TRNG Services

Link: callback_and_services.htm
This document introduces, in general way, what Services and Callbacks are.
It is enough short help and you could give a look if you yet don't understand the basic logic of callbacks or trng services.
Anywya this help is not the primary source of informations about above topics but only a technical introduction about this matter.
Callbacks are described in depth in Plugin_SDK.htm and Plugin_SDK_2.htm help files.

How to combine assembly with the C++ skills

Link: combine_asm_with_c.htm
This help could be seen like natural continuation of "basic_c_help.htm" file.
While in "basic_c_help.htm" help, there was an introduction (for beginners) to C language syntax, in "combine_asm_with_c.htm" help file we describe the specific matter about comparison between C language and assembly language.
Since tomb4 program it has been written in C language but when we study its executable, we can see it only in assembly format, it's important (in particular way for them they wishes create patches) understand the links between C and asm code.

How to customize Visual Express editor

Link: customize_visual_express.htm
Describe how to add some short-cut icons in Visual C++ editor to help us in our job of editing and programming.

How to debug your plugin code - Debugger Tutorial

Link: debugger_tutorial.htm
This help file follows, step by step, the attemp to fix a bug in plugin source while we were going to develope Star Wars robot.
I used this as an opportunity to describe better the advanced features of VC2010 debugger.
In spite you wish following the step by step turorial debugger, it's better anyway, you read this help file, because if you try to work on C++ plugin codes, it's sure that you'll need to use debugger in some circustance.
NOTE: if you want follow the bug hunting, step by step, you should load (old and bugged) pugin sources you find in folder: "PLUGIN_SDK_STORE\Tutorial Debugger" folder.
In that folder you'll find either C++ plugin sources (in "Plugin_Source_bugged" subfolder, and old wad and project (.prj/.tga) files, to build the tr4 level in "Wad_prj_files" sub folder.

How to create dynamically Script Commands

Link: dynamic_script_commands.htm
Trng-core allows to plugins to create dynamically some script commands.
Not all script commands can be created via plugin, only those required from some triggers.
In this help file it will be described the script commands you can create at-fly, via source code, and the limitations about this approach.

First Steps in Assembly

Link: first_steps_asm.htm
Introduction to assembly instructions for beginners.
This help file has same approach than that of "basic_c_help.htm" help, but in this case it will be introduced the assembly language.
If you wish understand something looking the tomb4 disassembly, it's important you studied this document.

Functions Collection

Link: function_collection.htm
In this document will be described most of pre-set functions you find in basic plugin sources.
These function are located in trng.cpp source and are very useful bricks to build your final plugin.
In this help file you'll find in-depth descriptions about how to use these functions.

Plugin run-time files

Link: plugin_files.htm
In this document there will be the description of run time files for plugins.
For "run-time" files we don't mean the C++ sources, required to build the plugin..dll engine, but the set of files you should share with level builders, to get them able to build levels using your plugin.
The run-time files have (almost) all the same name of your plugin, but with different extensions: ".btn", ".script", ".ocb", ".trg", ".exe" and, of course, ".dll"
This help file will describe internal syntax for this files and their target.

Meaning of C++ Source Files

Link: table_a_sources.htm
The sources files described in this document are those of your plugin Visual C project.
This document is a table showing, in short way, what is the target for each source file of your plugin project.
It should be better giving a look to this table to understand better how to move in your sources, in particular way it's necessary you understood where you can add your stuff and where you can't.

Sections of Main Source (Plugin_trng.cpp)

Link: table_b_main_source.htm
In this document it will be analysed in depth the different logical section of main source: the plugin_trng.cpp file.
It's important, indeed, understanding the better position where type the code in according with its target.

How to add new Triggers

Link: triggers.htm
This help file learns how to create new triggers.
There will be a in-depth description about internal syntax of ".trg" file and how to manage in C++ sources your new triggers.

How to change Version numbers

Link: version_numbers.htm
A description about the meaning of two different versions you can set in your plugin.dll, and how to change internal version numbers.

Visual Express 2010 - Installation and Setup

Link: visual_express_2010.htm
Help file that describes, step by step, how to download, installing and setting the Visual Express 2010 program.