• Please stop embedding files/images from Discord. Discord has anti-hotlinking logic in place that breaks links to Discord hosted files and images when linked to from anywhere outside of Discord. There are a multitude of file/image hosting sites you can use instead.

    (more info here)

TSC Editor+

May 15, 2026 at 3:24 AM
Senior Member
"Master using it, and you can have this!"
Join Date: Nov 29, 2025
Location: Venezuela
Posts: 72
Age: 21
Pronouns: He/Him
Gender Notes: I'm a Deathcore Purist.
It's not your fault, dark mode was planned from the start, the only thing I hadn't considered was your PC, which I'd forgotten is 4x worse than mine XD
Well, i would say 5x worse XD
 
May 16, 2026 at 1:00 AM
Been here way too long...
"All your forum are belong to us!"
Join Date: Oct 7, 2013
Location: India
Posts: 612
Neat program! I like all the features, and the layout is very nice and clean.
It would be nice to have the current tsc file's name as a header while you're editing it, or maybe have it coloured in in the file directory listing on the left.
Also maybe it's just me but I think it would help to have the 'search command' box at the top instead of the bottom.
Lastly, it would be cool if eventually you added things like face previews, or things like mentioning what direction so-and-so fade number is when you hover on it, etc. But that probably takes a lot of time and effort and might not be worth it.
Now, I tried opening a Japanese mod with this program and it largely works, but a few files (that i assume must be in shift-jis like all the others) were interpreted as being in utf-8 or cp850, and hence look like gibberish. I don't know what causes this, but it might be helpful to have a manual override for the encoding scheme.
Another issue is that almost all script files are cut off midway for some reason, which makes this unusable for now. I'm not sure if it's just my computer or what.
I've linked the mod I'm using, maybe you can see if these issues are reproducible. Thanks!
 
Last edited:
May 16, 2026 at 3:49 AM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
Neat program! I like all the features, and the layout is very nice and clean.
It would be nice to have the current tsc file's name as a header while you're editing it, or maybe have it coloured in in the file directory listing on the left.
Also maybe it's just me but I think it would help to have the 'search command' box at the top instead of the bottom.
Lastly, it would be cool if eventually you added things like face previews, or things like mentioning what direction so-and-so fade number is when you hover on it, etc. But that probably takes a lot of time and effort and might not be worth it.
Now, I tried opening a Japanese mod with this program and it largely works, but a few files (that i assume must be in shift-jis like all the others) were interpreted as being in utf-8 or cp850, and hence look like gibberish. I don't know what causes this, but it might be helpful to have a manual override for the encoding scheme.
Another issue is that almost all script files are cut off midway for some reason, which makes this unusable for now. I'm not sure if it's just my computer or what.
I've linked the mod I'm using, maybe you can see if these issues are reproducible. Thanks!
Okay, I plan to move the TSC command search bar higher up, and to make it more like Windows 11 I'll also add tabs, I will also fix the problem with the characters (?) in Japanese TSC. What do you mean by TSCs getting cut off halfway through? It's possibly because the encryption only supports files with a certain number of lines; if it exceeds that limit, it gets cut off (or so I assume). Another feature you requested is the classic Face Preview from Cave Editor; it will be added, as well as ORG Preview (for now, animated faces and OGG files from CS+ versions will not be supported by the preview for now). I knew about the thousands of bugs it had, so I uploaded it as a release instead of a beta (I don't know why XD). Since I'm still learning to use Python libraries, it will probably take me a while to add features; I'll focus on fixing everything.

I'll add a menu to manually select encryption, but if you import an entire folder, the encryption will apply to all TSCs.
 
Last edited:
May 16, 2026 at 10:39 AM
Sincerity will always triumph over irony.
Modding Community Discord Admin
"What're YOU lookin' at?"
Join Date: Apr 23, 2013
Location: In a cave above the surface.
Posts: 1101
Age: 28
Pronouns: He/They
Gender Notes: More info at a later date.
Okay, I plan to move the TSC command search bar higher up, and to make it more like Windows 11 I'll also add tabs, I will also fix the problem with the characters (?) in Japanese TSC. What do you mean by TSCs getting cut off halfway through? It's possibly because the encryption only supports files with a certain number of lines; if it exceeds that limit, it gets cut off (or so I assume). Another feature you requested is the classic Face Preview from Cave Editor; it will be added, as well as ORG Preview (for now, animated faces and OGG files from CS+ versions will not be supported by the preview for now). I knew about the thousands of bugs it had, so I uploaded it as a release instead of a beta (I don't know why XD). Since I'm still learning to use Python libraries, it will probably take me a while to add features; I'll focus on fixing everything.

I'll add a menu to manually select encryption, but if you import an entire folder, the encryption will apply to all TSCs.
They are talking about Encoding, not Encryption. Booster's Lab allows you to change the encoding because freeware TSC does not use Unicode/UTF-8 but instead ShiftJIS (which for English is mostly akin to Ascii). Your program needs to handle this instead of trying to guess what the encoding is when it opens the file.
 
May 16, 2026 at 9:27 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
They are talking about Encoding, not Encryption. Booster's Lab allows you to change the encoding because freeware TSC does not use Unicode/UTF-8 but instead ShiftJIS (which for English is mostly akin to Ascii). Your program needs to handle this instead of trying to guess what the encoding is when it opens the file.
II just want to know what kind of encryption and ciphering the TSCs of the original Japanese game use to improve the automatic mode.
I will also add Manual Mode.
 
Last edited:
May 17, 2026 at 1:44 AM
Been here way too long...
"All your forum are belong to us!"
Join Date: Oct 7, 2013
Location: India
Posts: 612
What do you mean by TSCs getting cut off halfway through?
Okay, I think I figured it out :pignon: your decryption code had a small error that was causing null characters appear in the decoded text. On line 2412 of main.py, replace "val = 0" with "val += 256". You were clamping the result of the cipher subtraction, but apparently it needs to wrap around. I assume you'd need a similar fix for encryption: at line 2425, replace "val = b + cipher" with "(val = b + cipher) % 256", and delete lines 2426 and 2427. Feel free to double-check this idea.
 
May 17, 2026 at 2:28 AM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
Okay, I think I figured it out :pignon: your decryption code had a small error that was causing null characters appear in the decoded text. On line 2412 of main.py, replace "val = 0" with "val += 256". You were clamping the result of the cipher subtraction, but apparently it needs to wrap around. I assume you'd need a similar fix for encryption: at line 2425, replace "val = b + cipher" with "(val = b + cipher) % 256", and delete lines 2426 and 2427. Feel free to double-check this idea.
I'll try that and see if it works. I'll let you know when I've fixed it. Thanks for the correction. I'm going to use separate files because my main.py is very long and I might get lost or forget something. Considering that I initially said it was going to be a big project, I will organize it better. (I will currently release version 1.1 or 1.2 as a patch depending on how long it takes to fix the bug, but the major update with more features will be 2.0 which I hope will be more stable)
I've fixed it now. Large Japanese files are no longer cut off, and all characters are displayed correctly.
1779033996521.png
1779034802239.png
 
Last edited:
May 17, 2026 at 5:49 PM
Been here way too long...
"All your forum are belong to us!"
Join Date: Oct 7, 2013
Location: India
Posts: 612
Another small bug: sometimes one character ends up garbled when saving a file and then loading it again. I figured it has something to do with the cipher, and tried commenting out these lines:
"if self.current_cipher is not None:
cipher = self.current_cipher"
and that seemed to fix it for now, but I'm afraid it'll break something else later on.
 
May 17, 2026 at 5:55 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
Another small bug: sometimes one character ends up garbled when saving a file and then loading it again. I figured it has something to do with the cipher, and tried commenting out these lines:
"if self.current_cipher is not None:
cipher = self.current_cipher"
and that seemed to fix it for now, but I'm afraid it'll break something else later on.
I won't fix it for now since you didn't specify the file type (Project File (.cstsc) or TSC File). I won't edit anything sensitive for now until I release version 1.1 (With the current encryption now fixed, this probably won't happen again, and you can now select the encryption manually.).

As an additional feature, I will add that when you select another TSC from the list, it will detect that you have not saved the changes, so you can switch TSCs without any worry of losing your progress.
 
Last edited:
May 18, 2026 at 12:24 AM
Been here way too long...
"All your forum are belong to us!"
Join Date: Oct 7, 2013
Location: India
Posts: 612
My bad, this was when exporting as a tsc file.

Edit: another bug that was garbling some files because it was returning a negative cipher value:
"return top_key - 0x0D" -> "return (top_key - 0x0D)%0x100"
With this i think the encoding issue is solved
 
Last edited:
May 18, 2026 at 4:35 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
My bad, this was when exporting as a tsc file.

Edit: another bug that was garbling some files because it was returning a negative cipher value:
"return top_key - 0x0D" -> "return (top_key - 0x0D)%0x100"
With this i think the encoding issue is solved
I just solved it right now and it worked, thanks!
- Fix Dark Mode (IMPOSSIBLE)
- Fix The Search Engine (Ctrl+F) (1.2)
- Fix Spacing When Importing .cstsc (1.2)
- Delete The <IMG Command (Does Not Exist In The Game) (DONE)
- Add animFace IDs From Cave Story+ (Switch) (2.0)
- Add Button to Change Encryption (DONE)
- Add Tabs Like In Windows 11 (1.2)
- Real-Time Face Viewer (DONE, Other Faces Missing) (Right Click to the command FAC --> Show Command Info)
- Show Which TSC You Are Using (DONE)
- Add Vaporwave Theme (DONE)
- Repair TSC Files (DONE)
1779118463684.png
 
Last edited:
May 19, 2026 at 6:40 AM
Been here way too long...
"All your forum are belong to us!"
Join Date: Oct 7, 2013
Location: India
Posts: 612
I encountered yet another tsc file that wasn't loading properly, and again something was wrong with the cipher it was calculating. I tried a very simple change:
Python:
def get_cipher_from_tsc(data: bytes) -> int:
    return data[len(data)//2]
and that seemed to work. Your original function in comparison seemed pretty complicated, so I assume it was solving some other problems I don't know about? Either way, this needs investigation.
 
May 19, 2026 at 1:02 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
I encountered yet another tsc file that wasn't loading properly, and again something was wrong with the cipher it was calculating. I tried a very simple change:
Python:
def get_cipher_from_tsc(data: bytes) -> int:
    return data[len(data)//2]
and that seemed to work. Your original function in comparison seemed pretty complicated, so I assume it was solving some other problems I don't know about? Either way, this needs investigation.
But have you at least tried selecting a specific encryption method in the settings? I'll keep that bug in mind. There's another bug that prevents Spanish special characters from appearing in the translated TSC; they only appear if you type them manually. (I don't know if this is still happening.) Another thing is the word search engine; it has many bugs (some buttons are just decoration, I didn't pay much attention to it so I left it like that). The error you mentioned is already being fixed. I suggest you do some unusual things in the editor to report more bugs and prevent version 1.2 from being even more broken than 1.1.
 
Last edited:
May 19, 2026 at 2:47 PM
Been here way too long...
"All your forum are belong to us!"
Join Date: Oct 7, 2013
Location: India
Posts: 612
I did try different encoding schemes, yes, but the cipher calculation is independent of that, no?

Also while I'm here, I'd like to request a feature that lets you know when text will be too long for the message box. And being able to quickly reopen the recently-opened files/folders/projects.
 
May 19, 2026 at 6:50 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
Also while I'm here, I'd like to request a feature that lets you know when text will be too long for the message box.
There's already a function to check if text fits in a textbox (it's been there since version 1.0). Just select the text and right-click --> Count Characters. You can select whether the textbox has a face (yes or no), and it will tell you exactly if it fits. (Note: Select only a vertical line and select the text horizontally.) (No face: 34) (Face: 27)
I did try different encoding schemes, yes, but the cipher calculation is independent of that, no?
Oh, and I've already solved the encryption problem. As you correctly suspected, even if you try to change the encryption manually, it gives errors because of that code snippet. The encryption depends 100% on the code; if there's an error, even changing the encryption will still cause an error.
And being able to quickly reopen the recently-opened files/folders/projects.
Opening recent TSCs is a great idea; I'll see how I can implement it.
 
May 19, 2026 at 11:07 PM
The miracles of alchemy...!
Bobomb says: "I need a hug!"
Join Date: Jul 20, 2015
Location: Under sea level or something
Posts: 836
Age: 27
Pronouns: 菓子
I took a very brief look at this to see if my OoB flag scripts would break in some way or another and while I hadn't had the time to check if it correctly saved stuff it seemed fine at a glance outside of expected 'syntax errors'.
I probably should've checked if it checks for : between command parameters though because I'm pretty sure the game doesn't even read those inbetween characters (sometimes my <TRAs are just like <TRA0012:00900000000000 or something).

What I find funny though is that this somehow shares a bug with SDE where control characters (used for OoB purposes) can cause weird spacing.
Not that it's a huge deal since its just a visual (so not functional) bug coming out of a niche case.
 
May 20, 2026 at 3:24 AM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
I took a very brief look at this to see if my OoB flag scripts would break in some way or another and while I hadn't had the time to check if it correctly saved stuff it seemed fine at a glance outside of expected 'syntax errors'.
I probably should've checked if it checks for : between command parameters though because I'm pretty sure the game doesn't even read those inbetween characters (sometimes my <TRAs are just like <TRA0012:00900000000000 or something).

What I find funny though is that this somehow shares a bug with SDE where control characters (used for OoB purposes) can cause weird spacing.
Not that it's a huge deal since its just a visual (so not functional) bug coming out of a niche case.
I've been focusing more on encryption than other functions. Perhaps when I add the TSC server, the error detection will be very accurate (apart from auto-completion and hints). If it gives you a syntax error and you know your command worked, ignore the system detection and save the TSC.
 
May 22, 2026 at 11:45 PM
Senior Member
"Wahoo! Upgrade!"
Join Date: Oct 23, 2025
Location: Dominican Republic
Posts: 59
Age: 18
Pronouns: he/him
I just updated the editor, with the current editions it is now easier to solve any encryption problems when I release another update
 
Back
Top