Staredit Network > Forums > SC1 Mapping Tools > Topic: Starcraft chat translator
Starcraft chat translator
Apr 23 2026, 6:58 pm
By: NiceNowIHaveAName  

Apr 23 2026, 6:58 pm NiceNowIHaveAName Post #1



Hi! I've made a one way chat translator for Starcraft, where 7 different languages can be used.

Press CTRL + SHIFT + ENTER to open it up.
Press CTRL + ENTER to send a message.
Press CTRL + F12 to quit it.




Demo


The project is open source, and many more details on how to use it can be found right here:

https://github.com/rtyrt7/SC_TRANSLATOR

The executable can be downloaded from here:

https://github.com/rtyrt7/SC_TRANSLATOR/releases/download/v1.0.0/SC_TRANSLATOR_1_0_0.exe

or you can run it as a script, or even you can compile it to an .exe yourself, more details here.

It was tested on Windows 10 and Windows 11 64 bit.


Enjoy!

PS:
If you mess up some settings, you can always delete sc_translator_state.json

It would be really nice if someone could make a 2 way translator.



None.

Apr 23 2026, 8:46 pm NudeRaider Post #2

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

That's cool, but having a 1-way translator that reads other messages and translates them to a language of choice would be a lot more useful I think.




Apr 24 2026, 12:14 pm NiceNowIHaveAName Post #3



I was trying to make one by running Starcraft in VMWare, where the account would be an observer and where it would use OCR to extract the text. My main account and the observer account would be in the same game. So the extracted text would be translated and be sent to my main account by the observer account. It was so messy I had to quit working on it.

I was also trying to mess around with Cheat Engine to find the text, and although I found it I think I'd have to find the static values, and for that I would need to attach the debugger, which it seems it's not working with Starcraft.



None.

Apr 24 2026, 1:02 pm NudeRaider Post #4

We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch

I was also trying to mess around with Cheat Engine to find the text, and although I found it I think I'd have to find the static values, and for that I would need to attach the debugger, which it seems it's not working with Starcraft.
There's EUDs that can read text from chat lines, so finding the addresses should be as simple as looking them up in the EUD Database.

Another concern would be how's Blizzard's stance towards 3rd party tools that read memory? I've heard cases where accounts got banned for stuff like this, so maybe it's best you keep it to translating input. I'm not aware of the details though, so I might be fearmongering unnecessarily, but I wanted to put out the thought.




Apr 24 2026, 1:17 pm NiceNowIHaveAName Post #5



Quote
There's EUDs that can read text from chat lines, so finding the addresses should be as simple as looking them up in the EUD Database.
Thank you!

I used kLauncher (anti cheat program) in the past, for almost as long as it existed. They had a chat messenger feature for some time, where they also read the memory to get the chat. I was kinda active in their forums, and I never heard of anyone getting banned by Blizzard. So I don't know what to say, but thanks for informing me about it.



None.

Apr 25 2026, 3:01 pm Zoan Post #6

Math + Physics + StarCraft = Zoan

This is maybe semi useful, so I'll share it:

Code
#text stuff            
next_display_line = EUD_Remastered(186877,0)

letter = []
for i in range(num_of_lines):
   letter.append([])
   for j in range(54*4+2):
       
       if (256**(((i*(54*4+2))+j+1)%4))-(256**(((i*(54*4+2))+j)%4)) > 0:
           bit_mask = (256**(((i*(54*4+2))+j+1)%4))-(256**(((i*(54*4+2))+j)%4))
       else:
           bit_mask = (256**4)+(256**(((i*(54*4+2))+j+1)%4))-(256**(((i*(54*4+2))+j)%4))-1
       
       letter[i].append(
           EUD_Remastered( 186879+(((i*(54*4+2))+j)//4), ((i*(54*4+2))+j)%4,bit_mask) )


It's been awhile, but: the way text works is there is some number of 'lines ' and there's up to 12, I think? So when a message is pushed, it displays the new line for the player, and all others are moved up one. But they exist in the same line index as they were before.

I believe the index for next line in SC is at index 186877 with offset 0, so that goes between 0 and 11.

e.g. at a given time it might be like this displayed on your screen:

line4: mre
line5: mrege
line6: rmewpmer
line7: wee
line8: woo
line9: gerger
line10: REGe
line11: GREGE
line0: GFGRTGR
line1: AGAGA

and if a new message pops up, it would be on line 2.

You can at any time read the letters from each line; every single slot for a letter has its own address. The addresses of the letters are calculated in that 'letters' array I gave. The values at those addresses go from 0 to 255 I think, with 0 being a space, I tihnk.

Post has been edited 1 time(s), last time on Apr 25 2026, 3:12 pm by Zoan.



\:rip\:ooooo\:wob\:ooooo \:angel\: ooooo\:wob\:ooooo\:rip\:

Apr 25 2026, 5:31 pm NiceNowIHaveAName Post #7



Thank you for sharing! :)



None.

Options
  Back to forum
Please log in to reply to this topic or to report it.
Members in this topic: None.
[2026-4-29. : 2:00 am]
l)ark_ssj9kevin -- hi jamal
[2026-4-29. : 12:18 am]
Heinermann -- memes
[2026-4-28. : 10:08 pm]
NudeRaider -- skeet-skeet, motherfucker
[2026-4-28. : 4:24 pm]
Vrael -- NudeRaider
NudeRaider shouted: Vrael boy, if you're not careful I'll moderate your sorry ass too!
gotta catch me first! skeet skeet skeet
[2026-4-26. : 1:58 pm]
lil-Inferno -- ya
[2026-4-25. : 11:50 pm]
JamaL -- Glad to see SEN will never die. Kudos to whoever is paying the hosting fees these days!
[2026-4-25. : 3:37 pm]
NudeRaider -- (-.-,)
[2026-4-25. : 3:35 pm]
Zoan -- ;o I thought that was a monkey emote
[2026-4-25. : 3:34 pm]
Zoan -- :mods:
[2026-4-25. : 3:34 pm]
Zoan -- :mods"
Please log in to shout.


Members Online: Rawflesh0615, Zincoshine