Staredit Network > Forums > SC1 UMS Mapmaking Assistance > Topic: [EUD] Prevent team kill points
[EUD] Prevent team kill points
Apr 9 2026, 12:16 am
By: Prankenstein  

Apr 9 2026, 12:16 am Prankenstein Post #1



The map: Team Micro Arena Legends

The problem: Native kill score is the driving force behind the game. We all know and follow the rules: No team killing to gain points. However, splash damage doesn't care about the rules. Namely, reaver splash is responsible for many illegitimate points. We've had this problem for years with no great solution other than to remove the reaver, but the reaver is a huge part of the early game.

Failed solution:

With the help of AI, I created two separate epScripts, that in conjunction with EUDDraft, I use to compile the map. The first attempts to emulate the native kill score using a custom score. The second attempts to roll back any points gained from team killing.

With the first script, everything seemed to work great but the game eventually crashed, so I abandoned it.

The second script also seems to work great most the time, but at random times it seems like points are being subtracted from players for no reason.

Here's the second script for anyone who might be familiar:

Quote
const tracked = UnitGroup(1700);

function isAlly(p1, p2)
{
if (p1 >= 0 && p1 <= 2 && p2 >= 0 && p2 <= 2) return 1;
if (p1 >= 3 && p1 <= 5 && p2 >= 3 && p2 <= 5) return 1;
return 0;
}

function afterTriggerExec()
{
foreach (ptr, epd : EUDLoopNewUnit())
{
tracked.add(epd);
}

foreach (unit : tracked.cploop)
{
foreach (dead : unit.dying)
{
dead.move_cp(0x4C / 4);
const victimOwner = bread_cp(0, 0);

dead.move_cp(0x64 / 4);
const unitType = wread_cp(0, 0);

dead.move_cp(0x90 / 4);
const killer = bread_cp(0, 0);

if (killer == victimOwner) continue;
if (killer < 0 || killer > 7) continue;

if (isAlly(killer, victimOwner))
{
const score = wread(0x00663EB8 + unitType * 2);

DoActions(
SetMemory(0x00581EA4 + killer * 4, Subtract, 1),
SetMemory(0x00581F04 + killer * 4, Subtract, score)
);
}
}
}
}


The line 'const killer = bread_cp(0, 0);' supposedly finds the "Last Attacking Player" of the dead unit. But I'm not certain if this is always the same "Confirmed Killer" that the engine uses to alter the native killscore table.

Does anyone have any expertise in this stuff who is willing to lend a hand or add some insight? I'm at my wit's end.

Post has been edited 3 time(s), last time on Apr 9 2026, 12:28 am by Prankenstein.



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[01:40 am]
Oh_Man -- tthen u come to SCBW and it's like - upload WAV, play WAV.... sigh why cant it be that easy
[01:40 am]
Oh_Man -- and no consistent easy to use way to then play the audio either
[01:39 am]
Oh_Man -- where they use third party audioprogram called WWISE which basically makes adding audio extremely difficult
[01:39 am]
Oh_Man -- i appreciate SCBW's ability to just let us upload and play WAVs so much compared to nightmare that is total war warhammer 3
[2026-7-18. : 2:27 am]
Symmetry -- https://staredit.net/topic/18903/ THE REVIEWS ARE HERE! "ok these are pretty good memes" - ssj9Kevin
[2026-7-17. : 2:58 pm]
Ultraviolet -- Symmetry
Symmetry shouted: Man I wish we had this tech back in the day when people played ums lmao
fr fr
[2026-7-17. : 2:39 am]
Symmetry -- Man I wish we had this tech back in the day when people played ums lmao
[2026-7-16. : 6:28 am]
NudeRaider -- EUD actions, specifically. The conditions remained. Today we can even have actions again, but they're all virtualized/whitelisted (not sure on the actual technical implementation) so you can only use them for specific intended purposed, not arbitrary code injections.
[2026-7-16. : 6:26 am]
NudeRaider -- I mean yes, maps - through EUDs - were theoretically able to do that as well, but that was patched quickly.
[2026-7-16. : 6:25 am]
NudeRaider -- Symmetry
Symmetry shouted: Ohhh imagine a SC map that could delete itself
not the map, the editor
Please log in to shout.


Members Online: O)FaRTy1billion[MM]