Advanced Search

Author Topic: ACS Source listings  (Read 6663 times)

0 Members and 1 Guest are viewing this topic.

December 25, 2012, 06:22:28 PM
Read 6663 times

Offline Russel

  • MM8BDM Extender

  • Doc Croc
  • ***********
  • Date Registered: December 17, 2010, 11:11:25 PM

    • View Profile
ACS Source listings
« on: December 25, 2012, 06:22:28 PM »
ACS (or Action Command Script) is a coding tool used by more advanced modders (ie. coders) to allow for more powerful modification of the game. However, ACS, whether in Zandronum or in Skulltag, is limited to only 999 scripts, numbered from 1-1000. Usually scripts 1-100 are restricted to mappers and overlapping scripts can cause issues with certain features of the mod (or mods) in question. Overlapping script numbers can also be an issue with compatibility, as it causes certain things to not function properly. An example would be trying to run CSCC with Roboenza, (Rage or not) when these two mods are both loaded, the scripts for Beed's missile lock-on and certain scripts that get the mode started in (Rage)Robo clash, causing either one to not function properly. So, I have compiled a list of ACS Script numbers from core 8BDMv3a, as well as of YD Classes; I would do the same for KY classes, but the ACS there is closed source.

Core v3a: (Listed numerically backwards...Mostly...)
(click to show/hide)

Classes v6c (not compatible with v3a; no real organization)
(click to show/hide)

A note to non-coders, using GLOBAL.acs in a mod just replaces the normal one, so there will not be any overlap of script numbers; this rule applies to all replaced ACS files. The example about RageRobo and CSCC was concerning scripts 700 onwards.

I plan on updating this in the future with updated numbers and more mods with ACS.

December 25, 2012, 07:13:10 PM
Reply #1

Offline Laggy Blazko

  • MM8BDM Extender

  • Unf
  • **
  • Date Registered: April 01, 2011, 02:08:23 AM

    • View Profile
Re: ACS Source listings
« Reply #1 on: December 25, 2012, 07:13:10 PM »
Thanks for the list. I hope Zandronum implements named scripts soon (though I've heard they only work in certain cases I can't remember).

December 25, 2012, 07:25:05 PM
Reply #2

Offline Beed28

  • MM8BDM Extender

  • Putting the 'bounce' into your world.
  • ***
  • Date Registered: June 20, 2011, 08:07:58 PM

    • View Profile
Re: ACS Source listings
« Reply #2 on: December 25, 2012, 07:25:05 PM »
Someone's submitted a ticket on the tracker. I hope they'll add it soon.

December 25, 2012, 09:48:42 PM
Reply #3

Offline Stardust

  • Enthusiast
  • *
  • Date Registered: July 15, 2012, 07:42:47 AM

    • View Profile
Re: ACS Source listings
« Reply #3 on: December 25, 2012, 09:48:42 PM »
Ah, thanks, Lego for listing these ACS. I won't get into ACS creation now, through I can have a better view of the slots used.
Because, it's true : I don't know at all why did they used the script 251 and the script 999, while they could have make the things clearer by using the scripts 1 and 2. The same goes for the actors, through they are more homogeneous, their numbers are around the 10.000~11.000...
wait there is 1000 between 10.000 and 11.000 !?

December 25, 2012, 09:59:38 PM
Reply #4

Offline Russel

  • MM8BDM Extender

  • Doc Croc
  • ***********
  • Date Registered: December 17, 2010, 11:11:25 PM

    • View Profile
Re: ACS Source listings
« Reply #4 on: December 25, 2012, 09:59:38 PM »
Well, Stardust, scripts 1-100 are supposed to be reserved to mappers; maybe going down from 999, and the script numbers (without optimization) would easily still be less than 100 total, freeing up everything from 101-801 to modders. As for DoomEd numbers, they are all occupied below a certain threshold by native ones.

December 28, 2012, 12:00:55 AM
Reply #5

Offline mrjnumber1

  • Standard Member
  • Date Registered: November 03, 2010, 07:37:06 AM

    • View Profile
Re: ACS Source listings
« Reply #5 on: December 28, 2012, 12:00:55 AM »
what insane moron came up with that convention.. and how has it gone unchanged until, apparently, recently?

May 06, 2013, 04:06:52 AM
Reply #6

Offline Russel

  • MM8BDM Extender

  • Doc Croc
  • ***********
  • Date Registered: December 17, 2010, 11:11:25 PM

    • View Profile
Re: ACS Source listings
« Reply #6 on: May 06, 2013, 04:06:52 AM »
Apologies for the rather massive bump.
Anyhow.
I figured out how different scopes work in ACS...specifically world and global scope variables.

To experiment, I created two mods. One that printed the variable and one that modified it. Normally, the variable would always be shown as 0 on the mod that printed it, but I found that if you created a variable in one mod under the world or global scope and another variable in a different mod under the same scope and index and then modified it, this new value would be present in all mods that call that variable for values.

In code, it would look similar to this:
(click to show/hide)
Note how the first block first prints the value as it started out, waits 1 second, then prints the updated value.
The second script waits about half a second and then modifies the variable established.
Also note how the variable names are different while the indexes and scopes are the same.

This use of world/global scoped variables would enable users to transfer information across multiple mods, which would enable things like compatibility between them regarding silly things like damagetypes and LMS loadouts...it could even allow modders to add special features within their mods that are designed specifically to work with a different mod. The only issues I see with this method are the limit of global and world scope variables to 50 different values...which could potentially cause some interesting errors if everyone decides to use the same index for their mods, it would cause some serious compatibility issues...almost worse than what we have now.

I received most of my information of this from here. I mainly wanted to point out that values established on world and global scope variables with the same indexes are transferred across all mods. However, both mods would have to establish the variable before they could call it.