To SCR Developers:
I know you guys work very hard and i really appreciate the work you guys do. The game has gotten amazing since the initial release of scr.
However we as community would like to put in our own bit and create maps and fun stuff with the game. I wonder if it would be possible in the near future to have LUA or other scripting / modding support for UMS maps? I know we got the trigger editor but it’s not as high level as a well made mod requires and takes days to build something usefull.
We have BWAPI and other tools to mod the game but most of us who love to be creative would love to create custom UMS maps. Look where did SC2 arcade go over the years.
Basic access to the engine’s api to spawn effects and detect units and implement custom behaviours would be amazing.
I already saw some hardcore moded maps and i couldn’t find anything how to make one.
Also it would be great if this API would support some http calls or third party sockets to communicate with a rest api to get player stats and things like that.
Any hints or news regarding a programming language like LUA or something like that for UMS maps would be greatly appriciated.
I can see two things in your post: 1) abstraction of code
2) access to data in the game engine
Both of these things actually already exist in the SC mapping scene.
You can abstract code by using a trigger preprocessor, and there have been many that have been written for this purpose. With a preprocessor, you can write control loops, conditionals, functions, and make use of arrays - all the regular things you would expect in a regular run-of-the-mill programming language. The only caveat is that at the end of the day the code that you write into the preprocessor still has to be dumped into the mapfile, and thus SC, as your standard trigger. So something that is a single loop in your preprocessor might be 50 distinct triggers that SC has to save to a map file, and run, at runtime. Do this enough times and it will, of course, be computationally expensive.
The other thing, querying those additional things that you do not know how it is queried – that is served by the use of one word: EUD. If you don’t know what that is, go look it up. It’s short for “Extended Unit Deaths,” and is an integer overflow that allows one to read/write directly into SC’s address space. That is the method by which you see those things that you define as “hardcore modded maps”.
.
Link to a trigger preprocessor (in Lua): www.staredit.net/topic/16517/#1
(It’s a native plugin to SCMDraft 2; you can just drop it into the folder and open it from SCMDraft like you would the regular trigger editor)
.
I’m not sure, but I hope that answered all of your questions. Feel free to shout if it didn’t. (I’ll be here – maybe, hehe).
Oh and, one more thing. The trigger preprocessor that I linked likes to throw errors when you tell it to generate too many triggers. I prefer using the older version (0.06beta), which I find to be a lot more stable.
-Zurg
Great answer, i am already aware of those. However it is still impossible to create AI that would execute various things, for example send worker to build something. We have to fake these with spawn units and so on. Or create algorithms to do random path finding for a unit? Get the path finding results? And such things. And the list goes on that only the above mentioned support would unlock. Triggers were fine and an amazing thing back in the days but nowadays… kinda meh. I believe everyone would benefit from a dedicated scripting language to create modded maps. Or at least provide us some sort of access so we could create it ourselves? 
You can make AI build at specified locations, and have been able to for years, but not on this version of Starcraft. http://pr0nogo.wikidot.com/rs-ext-ai
As Blizzard has (intentionally or otherwise) fought SC modding since SC:R’s release, expecting them to do anything that would benefit modding is an exercise in futility.
1 Like
The more exceptions you allow and more access to the games engine means more vulnerabilities, and i just dont think that is something they want to risk.
They do seem to be okay with creating custom and modded maps.
Is it really more acceptable using the thirdparty tools to do some hacky stuff with memory addresses than an offically supported programming language for maps?

All you guys seem to do is point out the downside of such feature which is minimal compared to the benefits 
And i believe you would love to have the tools so we would’t need hacky and complicated alternatives that could break anytime.
I would love to have your support on this

1 Like
I won’t ever make content for SC:R again, and what you propose wouldn’t change that for me. Surely it would benefit some small percentage of the userbase but Blizzard’s lack of communication regarding mods (likely because it’s technically against EULA) and the fact that the remastered patch is heavily limited when it comes to modding (and will always be) confirms that an officially-supported language for modding isn’t coming anytime soon, if ever. If you want to mod AI, you can use Blizzard’s own aiscripting language, which the community have updated.
1 Like
Pretty negative and inaccurate statement. There are lots of people who are playing UMS games. We do not wish to create AI for single player. We wish to create these ai scripts and other UMS maps to share with the community and play on battle.net. And if this would be against an EULA then might as well ban those memory address hackery that people using nowadays. It would be more controlled through a programming language such as LUA or any other choice.
Also i highly doubt it’s about the starcraft engine’s limitations. Such a feature could be built on top of the trigger parser, and embedding LUA into any application is fairly simple imho.
Also i would love to have feedback on this from offical sources.
I sure hope you’ll show me how it’s inaccurate by responding with facts and figures!
Naturally, straight into truisms. Do you have numbers? I don’t think anyone can have definitive figures, so if you have any source for this statement that isn’t purely anecdotal, that’d be appreciated.
What is this in relation to? I never said anything about making content for singleplayer.
Then… do that? Your AI will be limited by the patch but that shouldn’t stop you if that’s what you want to make. I’ve told you how to get started twice now, written and maintained guides for this purpose, and made primer videos for the more visually-oriented.
I’m not suggesting blizzard will start banning users who make or play mods, I’m stating that as it’s against EULA, I doubt they’ll take steps to support it. Obviously a built-in version of AI editing would expressly be allowed by the EULA, but when has blizzard ever patched SC to add custom content tools, besides features that were already present in 1161? They restricted EUDs more than 1161 and knocked out a bunch of colors for years, only recently re-implementing them in a messy manner. If their ramps were any good I guess you could mention that, but all melee mapmakers I’ve talked to claim they’re unusable.
Bottom line is that it seems like a lost cause. This isn’t being negative imo. I don’t want blizzard to continue to make content creation difficult on their platform, but I also don’t want prospective content creators holding out for patches that have never been discussed and probably won’t ever happen. A blue post could pop up in this thread and invalidate my naysaying, or confirm it, but I don’t see that happening either.
Do you have knowledge of how the game executes its AI? Performance may suffer if you built it into that, which like much of the game’s engine is a very messy function. The dangers of building a new system into that function are also readily apparent, as it may impact otherwise-unedited AI in singleplayer or melee. I don’t see blizzard greenlighting a brand new function either. Obviously a dev would know better than a modder but with my limited knowledge of how that code executes atm, I’m not expecting blizzard will want to touch it more than they already have with (seemingly pointless) sanity checks.
1 Like
SC:R already has supported replacing AIScript.bin
and BWScript.bin
by EUD. So you can make your own aiscript with PyAI
and inject it with dataDumper
or NPA5
, which is available in EUD Editor 2
.
There are maps using custom aiscripts already, mostly melee co-op vs. AI genre.
1 Like
That was before the jncraton tool was released I think. I tried that method of modifying AI but using EUD breaks the score screen.
1 Like