• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 20:02
CET 01:02
KST 09:02
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
[ASL22] Finals Preview: Sweet Victory!11[ASL22] Ro4 Preview: Mirror Mirror6[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5
Community News
Evil Geniuses - shutting down16ISSL (IntoTheTV x SOOP SC2 League): Premier5Weekly Cups (October 12-18): 5.0.17 era begins1[$1250] International ShieldBattery League80Weekly Cups (October 5-11): Farewell to 5.0.167
StarCraft 2
General
REPORT: StarCraft 2: Remastered In Development Evil Geniuses - shutting down How do you feel about the mass reverts in the 5.0.17 PTR? Team Liquid Map Contest #22: Results and Winners No more SC2 streamers on team liquid?
Tourneys
RSL goes to London! 2026 Offline Finals Nov 21-22 ScienceCraft (October 24-25) - Live Event Sparkling Tuna Cup - Weekly Open Tournament ISSL (IntoTheTV x SOOP SC2 League): Premier WORTEX Challenger Series — Open SC2 LAN in Budapes
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
[G] How to playtest arcade maps [A] Nemrods 1/4 players [M] (2) Sweltering Sands
External Content
Mutation # 549 Endless Sparkles The PondCast: SC2 News & Results Mutation # 548 Shining Bright Mutation # 547 Temple Of Terror
Brood War
General
[ASL22] Finals Preview: Sweet Victory! Recent recommended BW games [Megathread] Daily Funny Videos Hands of Pluto Oceanic Brood War - Join and chat!
Tourneys
[$1250] International ShieldBattery League [Megathread] Daily Proleagues [ASL22] Grand Finals [BSL23] RO24 Group C
Strategy
50,000-Word Terran Builds Memo 2026-10-22 Cliff Jump Revisited (1 in a 1000 strategy) Simple Questions, Simple Answers
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread Mobile Legends: Bang Bang Armies of Exigo - YesYes? General RTS Discussion Thread
Dota 2
Dota 2 Champions League Season 3 Begins April 25!
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread European Politico-economics QA Mega-thread US Politics Mega-thread Russo-Ukrainian War Thread
Fan Clubs
Reynor Fan Club The Flash Fan Club Serral Fan Club
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Innovate or Game Over?
TrAiDoS
ShieldBattery on Mac
Kraekkling
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
Can Bots Beat Pros?? Starcr…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 10221 users

Custom map/ UMS creators wanted - Page 3

Forum Index > BW General
Post a Reply
Prev 1 2 3 4 5 Next All
Freakling
Profile Joined October 2012
Germany1534 Posts
Last Edited: 2017-04-27 19:22:32
April 27 2017 17:38 GMT
#41
Maybe your tool is marketed more toward people who don't really make maps much, or have never really made a map before, or who are making a completely new map. If so, I'll back off a bit. But if you want established mapmakers to use this, it needs to be able to work with the things that people have already done.


If the triggers are already written for a map, you certainly don't need any tools for that any more. However, when any one, including you, starts any new map from scratch...

I understand. I come from a programming background where we're drilled that "the compiler knows better" from day 1, it's like a mantra (and it's mostly true given a decent enough compiler, which mine most likely ain't yet).


A good compiler for a sufficiently complex program, certainly. The issue is more that UMS map makers are used to writing all their stuff in assembler, and they don't want to rewrite any code that ain't broken ;D
Also, there is the issue that when memory is very limited (not just data memory but also the memory the program itself takes up, in this case meaning there is a trigger limit to a map), assembler might just be the best choice... So to run with the analogy, you should probably include the option for the super-geeks to use some inline assembler...
KhaosKreator
Profile Joined April 2009
Canada145 Posts
April 27 2017 18:34 GMT
#42
On April 27 2017 21:57 integral wrote:
Maybe your tool is marketed more toward people who don't really make maps much, or have never really made a map before, or who are making a completely new map. If so, I'll back off a bit. But if you want established mapmakers to use this, it needs to be able to work with the things that people have already done.

But established mapmakers make completely new maps all the time?

Having the compiler use available unused memory by default is obviously the way to go. You just have to make sure there are advanced options for people that want to manage that themselves.
Kyrie, Ignis Divine, Eleison
nlight
Profile Joined October 2011
Bulgaria58 Posts
Last Edited: 2017-04-28 01:32:15
April 27 2017 21:46 GMT
#43
I've pushed a new version with a much cleaned-up internal code representation with hopefully way less codegen bugs. If something didn't work as it should before, hopefully it works now.

An example of the new rnd256() function.

#define LUCKY_NUMBER 90

countdown(Exactly, 0) => {
set_countdown(2 + rnd256() / 80);

if (rnd256() >= LUCKY_NUMBER) {
print("lucky you");
spawn(TerranMarine, Player1, 1 + rnd256() / 40, "TestLocation");
order(TerranMarine, Player1, Attack, "TestLocation", "TestLocation2");
} else {
print("try again next time");
spawn(TerranMarine, Player2, 1 + rnd256() / 40, "TestLocation2");
order(TerranMarine, Player2, Attack, "TestLocation2", "TestLocation");
}
}

fn main() {
while(true) {
poll_events();
}
}


Also template functions:


fn spawn_units<T>(T, qty) {
talking_portrait(T, 5);
spawn(T, Player1, qty, "TestLocation");
order(T, Player1, Move, "TestLocation", "TestLocation2");
}

fn main() {
spawn_units(TerranMarine, 5);
}

kane]deth[
Profile Joined October 2009
Canada368 Posts
April 28 2017 01:04 GMT
#44
Just wanna chime in and say it's really really cool what you're doing here. I've never made any detailed maps before, but as a programmer knowing I can make cool advanced maps using code instead of having to learn about the trigger system and manipulating death counters is really enticing. I'm going to take a look at this soon!
integral
Profile Blog Joined February 2009
United States3161 Posts
Last Edited: 2017-04-28 03:05:06
April 28 2017 03:03 GMT
#45
On April 28 2017 02:38 Freakling wrote:
Show nested quote +
Maybe your tool is marketed more toward people who don't really make maps much, or have never really made a map before, or who are making a completely new map. If so, I'll back off a bit. But if you want established mapmakers to use this, it needs to be able to work with the things that people have already done.


If the triggers are already written for a map, you certainly don't need any tools for that any more. However, when any one, including you, starts any new map from scratch...


On April 28 2017 03:34 KhaosKreator wrote:
But established mapmakers make completely new maps all the time?



What? Even for maps I've already completed, I still use tools to update and edit it... Even if I didn't, this isn't actually relevant to what I was saying, because even in new maps I still copy and paste from what I've done in the past. The whole point of a program like this is to save time.
nlight
Profile Joined October 2011
Bulgaria58 Posts
Last Edited: 2017-04-28 14:30:06
April 28 2017 12:35 GMT
#46
The last big limitation is now lifted. You no longer need a reserved player at all. The "unused" unit death counters for all players are mapped by default. This gives us 416 memory locations to work with which should be more than enough for the default configuration. You can still pass a registers file with --reg to override it.

I still need a list of the names of all AI scripts if anyone has such a thing. Otherwise I'll just export a map from scmdraft 2 and extract them manually but it'd be nice to not have to.
integral
Profile Blog Joined February 2009
United States3161 Posts
April 28 2017 16:07 GMT
#47
Good stuff. I think asking on TL for specific things like AI scripts won't be as likely to get a response as asking on staredit.net.
nlight
Profile Joined October 2011
Bulgaria58 Posts
Last Edited: 2017-04-28 16:21:30
April 28 2017 16:15 GMT
#48
On April 29 2017 01:07 integral wrote:
Good stuff. I think asking on TL for specific things like AI scripts won't be as likely to get a response as asking on staredit.net.


I'd love to join that community but the website is really really slow for me for some reason (10-20 secs to load a page). I had to clone the wiki locally so I can work without waiting forever.
integral
Profile Blog Joined February 2009
United States3161 Posts
April 28 2017 16:59 GMT
#49
On April 29 2017 01:15 nlight wrote:
Show nested quote +
On April 29 2017 01:07 integral wrote:
Good stuff. I think asking on TL for specific things like AI scripts won't be as likely to get a response as asking on staredit.net.


I'd love to join that community but the website is really really slow for me for some reason (10-20 secs to load a page). I had to clone the wiki locally so I can work without waiting forever.


Yeah. It's a long-running joke how slow it is.
nlight
Profile Joined October 2011
Bulgaria58 Posts
April 28 2017 17:40 GMT
#50
TMCu - TerranCustomLevel
ZMCu - ZergCustomLevel
PMCu - ProtossCustomLevel
TMCx - TerranExpansionCustomLevel
ZMCx - ZergExpansionCustomLevel
PMCx - ProtossExpansionCustomLevel
TLOf - TerranCampaignEasy
TMED - TerranCampaignMedium
THIf - TerranCampaignDifficult
TSUP - TerranCampaignInsane
TARE - TerranCampaignAreaTown
ZLOf - ZergCampaignEasy
ZMED - ZergCampaignMedium
ZHIf - ZergCampaignDifficult
ZSUP - ZergCampaignInsane
ZARE - ZergCampaignAreaTown
PLOf - ProtossCampaignEasy
PMED - ProtossCampaignMedium
PHIf - ProtossCampaignDifficult
PSUP - ProtossCampaignInsane
PARE - ProtossCampaignAreaTown
TLOx - ExpansionTerranCampaignEasy
TMEx - ExpansionTerranCampaignMedium
THIx - ExpansionTerranCampaignDifficult
TSUx - ExpansionTerranCampaignInsane
TARx - ExpansionTerranCampaignAreaTown
ZLOx - ExpansionZergCampaignEasy
ZMEx - ExpansionZergCampaignMedium
ZHIx - ExpansionZergCampaignDifficult
ZSUx - ExpansionZergCampaignInsane
ZARx - ExpansionZergCampaignAreaTown
PLOx - ExpansionProtossCampaignEasy
PMEx - ExpansionProtossCampaignMedium
PHIx - ExpansionProtossCampaignDifficult
PSUx - ExpansionProtossCampaignInsane
PARx - ExpansionProtossCampaignAreaTown
Enmy - SetPlayerToEnemy
Ally - SetPlayerToAlly
VluA - ValueThisAreaHigher
EnBk - EnterClosestBunker
EnTr - EnterTransport
ExTr - ExitTransport


I made a list of all AI script names if anyone is interested in it for whatever reason.
nlight
Profile Joined October 2011
Bulgaria58 Posts
Last Edited: 2017-04-28 21:40:50
April 28 2017 21:33 GMT
#51
There is now a way to spawn units with properties. I think it is more flexible (?) than scmdraft or staredit as you can reuse CUWP slots for different unit types and they're quite scarce at 64 max. More info in the README here - https://github.com/AlexanderDzhoganov/langums#spawning-units-with-properties

Example:

unit LurkerType1 {
Health = 10,
Burrowed = true
}

fn main() {
spawn(ZergLurker, Player1, 1, "TestLocation", LurkerType1);
}
Glenstorm
Profile Joined January 2009
United States69 Posts
Last Edited: 2017-04-29 05:12:25
April 29 2017 05:04 GMT
#52
Just pushed an update to my vscode extension which adds in code completion on intrinsics, and gets up to date with the mammoth pile of new functionality in langums.

Some future features I might be looking at are filling in intellisense when working with intrinsic functions, and scanning the .scx file for locations and exposing those to autocomplete (if I figure out a friendly cross-platform way of distributing libmpq, might poke around asm.js).

Btw, you're a monster nlight, it's taking a pretty big chunk of my post-work free time just to keep up with your language updates
tec27
Profile Blog Joined June 2004
United States3727 Posts
April 29 2017 05:09 GMT
#53
On April 29 2017 14:04 Glenstorm wrote:
Just pushed an update to my vscode extension which adds in code completion on intrinsics, and gets up to date with the mammoth pile of new functionality in langums.

Some future features I might be looking at are filling in intellisense when working with intrinsic functions, and scanning the .scx file for locations and exposing those to autocomplete (if I figure out a friendly cross-platform way of distributing libmpq).

Btw, you're a monster nlight, it's taking a pretty big chunk of my post-work free time just to keep up with your language updates

You might be interested in: https://github.com/neivv/bw-chk

Probably doesn't get you all the way there (it's missing a lot of the stuff that'd probably be useful for you to auto-complete), but gets you much closer without using any native code, and is open for contributions if you'd like to add things
Can you jam with the console cowboys in cyberspace?
Glenstorm
Profile Joined January 2009
United States69 Posts
April 29 2017 05:22 GMT
#54
Looks like that plus your https://github.com/ShieldBattery/scm-extractor should get me there. VSCode is built on a node.js stack so I wont even have to deal with interop Thanks!
Freakling
Profile Joined October 2012
Germany1534 Posts
April 29 2017 09:35 GMT
#55
On April 29 2017 02:40 nlight wrote:
+ Show Spoiler +
TMCu - TerranCustomLevel
ZMCu - ZergCustomLevel
PMCu - ProtossCustomLevel
TMCx - TerranExpansionCustomLevel
ZMCx - ZergExpansionCustomLevel
PMCx - ProtossExpansionCustomLevel
TLOf - TerranCampaignEasy
TMED - TerranCampaignMedium
THIf - TerranCampaignDifficult
TSUP - TerranCampaignInsane
TARE - TerranCampaignAreaTown
ZLOf - ZergCampaignEasy
ZMED - ZergCampaignMedium
ZHIf - ZergCampaignDifficult
ZSUP - ZergCampaignInsane
ZARE - ZergCampaignAreaTown
PLOf - ProtossCampaignEasy
PMED - ProtossCampaignMedium
PHIf - ProtossCampaignDifficult
PSUP - ProtossCampaignInsane
PARE - ProtossCampaignAreaTown
TLOx - ExpansionTerranCampaignEasy
TMEx - ExpansionTerranCampaignMedium
THIx - ExpansionTerranCampaignDifficult
TSUx - ExpansionTerranCampaignInsane
TARx - ExpansionTerranCampaignAreaTown
ZLOx - ExpansionZergCampaignEasy
ZMEx - ExpansionZergCampaignMedium
ZHIx - ExpansionZergCampaignDifficult
ZSUx - ExpansionZergCampaignInsane
ZARx - ExpansionZergCampaignAreaTown
PLOx - ExpansionProtossCampaignEasy
PMEx - ExpansionProtossCampaignMedium
PHIx - ExpansionProtossCampaignDifficult
PSUx - ExpansionProtossCampaignInsane
PARx - ExpansionProtossCampaignAreaTown
Enmy - SetPlayerToEnemy
Ally - SetPlayerToAlly
VluA - ValueThisAreaHigher
EnBk - EnterClosestBunker
EnTr - EnterTransport
ExTr - ExitTransport


I made a list of all AI script names if anyone is interested in it for whatever reason.

You are still missing a lot of them. Those are just the standard StarEdit accessible ones. There are also all the Campaign scripts some spell scripts (recall/Dweb/nuke here, load nuclear silo), scripts that handle some unit spawns in some of the campaign missions, the all-so-important junkyard dog script (makes any unit move around like a critter), the vision scripts, and you even seem to have missed the suicide mission scripts.
Basically, have a look in SCMDraft, it can access all of them, to get the full list.
JungleTerrain
Profile Joined January 2012
Chile799 Posts
April 29 2017 09:49 GMT
#56
On April 29 2017 01:59 integral wrote:
Show nested quote +
On April 29 2017 01:15 nlight wrote:
On April 29 2017 01:07 integral wrote:
Good stuff. I think asking on TL for specific things like AI scripts won't be as likely to get a response as asking on staredit.net.


I'd love to join that community but the website is really really slow for me for some reason (10-20 secs to load a page). I had to clone the wiki locally so I can work without waiting forever.


Yeah. It's a long-running joke how slow it is.


Besides not really being a UMS mapmaker, this is one of the reasons I try to stay away from Staredit.net lol. But for me it's like 1-2 mins to load a page. My god it is horrible. So frustrating lol.

However I find it funny that some of the smartest guys in BW use such a slow website.
www.broodwarmaps.net
nlight
Profile Joined October 2011
Bulgaria58 Posts
Last Edited: 2017-04-29 10:53:42
April 29 2017 10:52 GMT
#57
You are still missing a lot of them. Those are just the standard StarEdit accessible ones. There are also all the Campaign scripts some spell scripts (recall/Dweb/nuke here, load nuclear silo), scripts that handle some unit spawns in some of the campaign missions, the all-so-important junkyard dog script (makes any unit move around like a critter), the vision scripts, and you even seem to have missed the suicide mission scripts.
Basically, have a look in SCMDraft, it can access all of them, to get the full list.


I dumped these from scmdraft by using the Classic Triggers editor. Maybe they're not all listed there? Give me some hints where to look.

code completion on intrinsics, and gets up to date with the mammoth pile of new functionality in langums.


Awesome!

Btw, you're a monster nlight, it's taking a pretty big chunk of my post-work free time just to keep up with your language updates


Don't worry this won't be for too long, I'm almost done with the core features
fazek42
Profile Blog Joined April 2011
Hungary441 Posts
April 29 2017 11:19 GMT
#58
You guys are total beasts :O
Glenstorm
Profile Joined January 2009
United States69 Posts
April 29 2017 13:29 GMT
#59
What's the strategy for handling multi-condition events? I was working on some demo code where I found myself wanting to do the trigger equivalent of "Player 1 brings 1 civ to location and has >=100 minerals" and I haven't seen anything setup like that in the tests. Some syntaxes I imagined where nested lambdas, using one condition as an if inside the other, or some weird bring(...) && accumulate(...) => { } setup.

I've been poking around with snippets and in all likelihood I have to make the event snippets a bit less aggressive at setting up syntax for you, if they're viable in stuff like if statements.
[image loading]
nlight
Profile Joined October 2011
Bulgaria58 Posts
Last Edited: 2017-04-29 18:05:06
April 29 2017 14:32 GMT
#60
On April 29 2017 22:29 Glenstorm wrote:
What's the strategy for handling multi-condition events? I was working on some demo code where I found myself wanting to do the trigger equivalent of "Player 1 brings 1 civ to location and has >=100 minerals" and I haven't seen anything setup like that in the tests.


You can specify more than one condition per event handler separated by commas (up to 63 total), it's actually in the examples in the README. I will add some to the tests as well. For your case it would look like:


bring(Player1, AtLeast, 1, TerranCivilian, BuyMarines),
accumulate(Player1, AtLeast, 100, Minerals) => {
take_resource(Player1, Minerals, 100);
}


That code completion gif is really cool, nice job.

On a sidenote, LangUMS now supports 100% of the built-in trigger conditions & actions in the game. Now I'm starting to expand into new territory. The first addition is the is_present(Player) function which tells you if a player (or players) is currently present in the game.


if (is_present(Player3)) {
print("Player 3 is in the game.");
}


You can also use it to get the number of players in-game at the moment like this:


var playerCount = is_present();


Everyone who is actively trying out, testing, using, doing whatever with the tool please join the discord here - https://discord.gg/TNehfve so we can talk in real time.
Prev 1 2 3 4 5 Next All
Please log in or register to reply.
Live Events Refresh
Next event in 28m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
PiGStarcraft309
Nathanias 103
ViBE100
RuFF_SC2 96
Nina 92
CosmosSc2 39
StarCraft: Brood War
Britney 10398
Rain 1517
GuemChi 855
Artosis 609
ProTech182
White-Ra 116
910 35
Dota 2
syndereN516
febbydoto10
League of Legends
Doublelift4991
Counter-Strike
Fnx 1374
Heroes of the Storm
Trikslyr97
Other Games
summit1g11438
shahzam557
C9.Mang0223
ToD204
minikerr11
fpsfer 1
Organizations
Other Games
gamesdonequick1980
[ Show 14 non-featured ]
StarCraft 2
• Hupsaiya 89
• RyuSc2 29
• davetesta8
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• masondota2598
League of Legends
• TFBlade323
Other Games
• Shiphtur832
Upcoming Events
PiGosaur Cup
28m
IntoTheTV X SOOP
1h 58m
The PondCast
9h 58m
Kung Fu Cup
10h 58m
IntoTheTV X SOOP
1d 10h
SHIN vs GuMiho
Clem vs Classic
OSC
1d 21h
WardiTV Invitational
2 days
GSL
2 days
Epic.LAN
2 days
Replay Cast
2 days
[ Show More ]
Sparkling Tuna Cup
3 days
Epic.LAN
3 days
Yamato Cup
4 days
Map Test Tournament
4 days
WardiTV Weekly
5 days
Replay Cast
5 days
Rogue vs Classic
Patches Events
6 days
Liquipedia Results

Completed

Acropolis #5 - GSC
Blizzard Classic Cup 2026
HCC Season 3

Ongoing

Acropolis #5
KCM Race Survival 2026 Season 4
International ShieldBattery League
BSL Season 23
PGL Masters Bucharest 2026
Stake Ranked Episode 5
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026

Upcoming

IPSL Winter 2026-27
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
eXTREMESLAND 2026
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.