The Improved Scripting Tutorial, v2 + New Tool
The Improved Scripting Tutorial, v2 + New Tool
I have made many additions onto the Soldier of Light's original scripting tutorial, with new information gathered by I and Soldier of Light himself.
The new texts in the tutorial include a new explanation of the Sibling-Child relationship concept, and info on many of the more advanced syntaxes, such as referencing globals, referencing other scripts, referencing AI by actor, squad, or platoon, constants, and maybe some other things I've missed.
There are also quite a few easy-to-read decompiled examples included to demonstrate many of these concepts. There is also a new updated value list and a complex command list with the data types of the command's possible arguments, courtesy of Soldier of Light.
Download
And info on my new tool - http://files.halomods.com/viewtopic.php?p=645406#645406
The new texts in the tutorial include a new explanation of the Sibling-Child relationship concept, and info on many of the more advanced syntaxes, such as referencing globals, referencing other scripts, referencing AI by actor, squad, or platoon, constants, and maybe some other things I've missed.
There are also quite a few easy-to-read decompiled examples included to demonstrate many of these concepts. There is also a new updated value list and a complex command list with the data types of the command's possible arguments, courtesy of Soldier of Light.
Download
And info on my new tool - http://files.halomods.com/viewtopic.php?p=645406#645406
Last edited by Agent ME on Tue Oct 24, 2006 7:30 pm, edited 1 time in total.
-
- Posts: 406
- Joined: Thu Aug 31, 2006 5:14 pm
- Location: Queens
![]() |
Nice, I might just get in to scripting now.

Click here for something you might like
Last edited by xXtR1Xm1Xx on Wed May 2, 1992 3:40 pm; edited 2,500 times in total
- TheTyckoMan
- Posts: 854
- Joined: Fri Apr 02, 2004 11:22 am
- Location: Tea co not Tie co...
![]() |
![]() |
![]() |
![]() |
Ah but that's like saying that when halo 2 came out the researchers were n00bs at it.... ;pShalted wrote:You guys might want to wait a little bit, a *new* scripting tool may be coming soon, and it pwns my compiler. All from a n00b at C#. (He knows who he is
)
Sweetness.......Visual Security: 9-block IP Identification
"Teenagers, plus anonymity, plus microphone = idiot."-Bungie
"Teenagers, plus anonymity, plus microphone = idiot."-Bungie
He's not fully a n00b, He actually learned C# quite fast.Shalted wrote:You guys might want to wait a little bit, a *new* scripting tool may be coming soon, and it pwns my compiler. All from a n00b at C#. (He knows who he is
)
He never even asked me for help much.
And yes it does pwn Shalted compiler

Last edited by 0mfc0 on Sat Oct 21, 2006 10:17 am, edited 1 time in total.
-
- Posts: 7
- Joined: Wed Oct 18, 2006 9:14 pm
- Contact:
As soon as I get the documentation done, I'm going to release a tool I've been working on. It'll will allow people to script much faster, but is not a full-blown syntax compiler. It doesn't even inject the script into the map for you, do to its nature. It's web-based, programmed in PHP.
You'll still need to understand how to code through the hex, but this tool will take care of setting up a lot of the hex, including messing with the expression, sibling, and child pointers.
To compile a piece of code like this:
You'd enter the following code into it:
As an experienced scripter could see, there's one line per syntax chunk, and lines for closing parenthesis, and ~ indicates a command number. The "r" type takes two arguments, the data type, in this case 6 (real) and the value spot for the hex, (which the tool endian-swaps), and then later the line asquad,9 references Squad 9.
There's also built in support for all of the string constants in the advanced section of my tutorial built-in to the tool (to say ai_current_actor, you'd use the type c, so the line would be cai_current_actor).
It'll be out soon as I get the docs done. It won't be a replacement for full-blown compilers, but it'll be for the advanced scripters that need to do what the existing ones can't do.
EDIT: PS: Here's the code that the above script compiled to. Note that this is starting at Expression Pointer 74E3. That is configurable inside the tool to be what you want easily.
You'll still need to understand how to code through the hex, but this tool will take care of setting up a lot of the hex, including messing with the expression, sibling, and child pointers.
To compile a piece of code like this:
Code: Select all
(begin
(physics_set_gravity 0.5)
(ai_place {Squad 9})
)
Code: Select all
(
~0
; COMMENT LOL~!
(
~127 ; physics_set_gravity is command #127
r6,3F000000
)
(
~290
asquad,9
)
)
There's also built in support for all of the string constants in the advanced section of my tutorial built-in to the tool (to say ai_current_actor, you'd use the type c, so the line would be cai_current_actor).
It'll be out soon as I get the docs done. It won't be a replacement for full-blown compilers, but it'll be for the advanced scripters that need to do what the existing ones can't do.
EDIT: PS: Here's the code that the above script compiled to. Note that this is starting at Expression Pointer 74E3. That is configurable inside the tool to be what you want easily.
Code: Select all
74 E3 00 00 04 00 08 00 FF FF FF FF 00 00 00 00 02 00 75 E3 75 E3 00 00 02 00 09 00 03 00 76 E3 00 00 00 00 00 00 00 00 76 E3 7F 00 04 00 08 00 06 00 79 E3 00 00 00 00 04 00 77 E3 77 E3 7F 00 02 00 09 00 05 00 78 E3 00 00 00 00 00 00 00 00 78 E3 06 00 06 00 09 00 FF FF FF FF 00 00 00 00 00 00 00 3F 79 E3 22 01 04 00 08 00 FF FF FF FF 00 00 00 00 07 00 7A E3 7A E3 22 01 02 00 09 00 08 00 7B E3 00 00 00 00 00 00 00 00 7B E3 13 00 13 00 09 00 FF FF FF FF 00 00 00 00 09 00 00 00
-
- Posts: 215
- Joined: Thu Jun 16, 2005 3:06 am
- Location: Probably around somewhere...
It could be a long time until its out, and it might have glitches, or unfunctional parts.
The reason I started getting into the advanced parts of scripting was so I could make an advance myself, and help others due that too, rather than repeat the last 3 months of advances in scripting. Which was nothing, other than people waiting for a compiler, or a better compiler. Waiting for progress in others in modding didn't get me anywhere in those months, and that's not something I'm ever doing again. I don't mind if a better compiler is released a day after I make my tool public. I don't care if a better one is released a day before I make it public. I care that I'm making progress, and that others that are capable are able to learn something from it as soon as possible.
The reason I started getting into the advanced parts of scripting was so I could make an advance myself, and help others due that too, rather than repeat the last 3 months of advances in scripting. Which was nothing, other than people waiting for a compiler, or a better compiler. Waiting for progress in others in modding didn't get me anywhere in those months, and that's not something I'm ever doing again. I don't mind if a better compiler is released a day after I make my tool public. I don't care if a better one is released a day before I make it public. I care that I'm making progress, and that others that are capable are able to learn something from it as soon as possible.
-
- Posts: 565
- Joined: Wed Nov 17, 2004 8:41 am
- Location: Vancouver, BC This is where people put their modding team because they feel important.
- Contact:
![]() |
![]() |
Well, that was obviously a joke, but I guess if you can't understand a simple form of sarcasm, too bad for you....0mfc0 wrote:He's not fully a n00b, He actually learned C# quite fast.Shalted wrote:You guys might want to wait a little bit, a *new* scripting tool may be coming soon, and it pwns my compiler. All from a n00b at C#. (He knows who he is
)
He never even asked me for help much.
And yes it does pwn Shalted's compiler
AgentME, I'm sorry but that's a horrible way of writing scripts, LISP in it self is an easy to understand language, why overcomplicate a simple language? Also, I fear it sways away too much from Bungie's original design.
Awaiting connection...
It's supposed to be easier to use than writing hex itself, which it obviously is (unless you're missing every button on your keyboard except for 0-9 and A-F). I think Bungie overcomplicated LISP with the hex codeShalted wrote:AgentME, I'm sorry but that's a horrible way of writing scripts, LISP in it self is an easy to understand language, why overcomplicate a simple language? Also, I fear it sways away too much from Bungie's original design.

I'd much rather code in the low-level form rather than code in hex. Least I don't have to bother with any expression pointers and indexes.
The reason I made it that way was it was much easier and quicker to build that than a full string parser. I figured I'd let SoL make the real string parser, and anyone interested in scripting would just use your or my compiler until then.
The FriHost servers seem to be bouncing on and off. Try every few minutes if it doesn't seem to be alive - it seems the downtime is a few minutes max usually. It works at the time of this edit.DWells55 wrote:Dead link...
-
- Posts: 565
- Joined: Wed Nov 17, 2004 8:41 am
- Location: Vancouver, BC This is where people put their modding team because they feel important.
- Contact:
![]() |
![]() |
Well, I'll give you that, but you'll have to admit, entering a decimal float value rather than representing it with it's hex equvilent is much more simple and efficient, good work none the less.
In regards to my compiler, I no longer have the will and/or hardware to research, develop or test anything related to scripting in Halo 2, so mine's dead and I have no plans on ressurecting it(Unless someone wants to buy me an Xbox), but that'll be redundant as soon as SoL's is released...
In regards to my compiler, I no longer have the will and/or hardware to research, develop or test anything related to scripting in Halo 2, so mine's dead and I have no plans on ressurecting it(Unless someone wants to buy me an Xbox), but that'll be redundant as soon as SoL's is released...
Awaiting connection...