Booster's Lab - It's Pretty Good Now

Discussion in 'Modding Discussion' started by Noxid, Jan 15, 2012.

Old topic!
The last post in this thread is over 60 days old. Posting in this thread will be considered a bump, so please make an attempt to be courteous if you go ahead with it.

If the last post is over 6 months old, it may instead be a better idea to start a new topic. If you aren't sure about what to do, feel free to ask a staff member for help, or try to locate a 'general questions'-type thread if it exists in this (sub-)forum.
  1. Jan 15, 2012
    Noxid Online
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    Booster's Lab is a Java-based Cave Story editor that I am presently working on. It will eventually be able to do anything Sue's or CE could do, and then some. Right now it's in early development and I want to post it to get some feedback as I go (haha).


    It is pretty stable by now imo but, like anything, you should always maintain adequate backups while using it incase anything weird happens.

    My design methodology is was to have things as simple and accessible as possible: One window, easy to switch between perspectives, as much info/options upfront as possible. Clearly I have failed miserably at that, but it may not have been possible to begin with.

    Anyway, I would love to hear back from people about how I'm doing, if the UI seems intuitive, if it makes your computer catch fire, those sort of things.

    You may be asking yourself "Noxid, why are you making a whole 'nother level editor? We already have like three of those!" and to that I say No, not really, if you added them up it'd be like 0.83 editors at max, and most of them don't really work that well. As well, they aren't great for working with CS+, and they update just this side of never. My editor will be fully functional, Sue's and CE compatible, possibly eventually cross-platform, won't corrupt your mapdata, edit CS+, and it will make you waffles in the morning. Beat that.

    24.09.2012 - 10k lines of code milestone. Pixel have mercy on me.

    Hidden Controls:
    Map Editor:
    - Shift-drag will allow you to move the map around
    - double-click the tileset pane to pop it out (or in?)
    - right-click the tileset to change tiletypes- Alt-D switches to "Draw" mode
    - Alt-F switches to "Fill" mode
    - Alt-R switches to "Replace" mode
    - Alt-E switches to "Rectangle" mode
    - Alt-C switches to "Copy" mode
    Entity Editor:
    - press 'i' on the map to set an entity under the mouse cursor
    - delete key will delete any selected entities (as long as the screen has focus)
    - shift-click selects all entities of a type
    - ctrl-click adds or removes entities to the current selection when clicked on
    - double click an entity in the entity types list to change all selected entities to that type
    - copy-paste entitys with ctrl-c ctrl-v
    ctrl-plus zooms in the map
    ctrl-minus zooms out the map
    ctrl-shift-plus zooms in the tileset thing
    ctrl-shift-minus zooms out the tileset thing

    A list of features that I plan to try to implement eventually
    - Make 'New' actually work (wow this one has taken forever)
    - Launcher
    - Implement flag and TRA list from existing TSC editor
    - Ability to open pxm or tsc files individually
    - Ability to easily modify global / arbitrary TSC files

    - Make the category tree in the npc.tbl editor have non-dummy values
    - Hacking dialog
    - Fix some leftover KSS names in entityinfo.txt (maybe?)
    - waffle button
    - right-click context menus for entity editor (maybe map editor too) <semi done>
    - input verification for npc.tbl editor
    - help files for using the program itself
    - Script-generator pseudolang (its javascript #dealwithit)
    - Delete key for map editor

    - Cross-platform-ify for modding on mac & linux
    - SFX Previewer
    - TSC Info (song names, sfx names, facepic preview, etc. like later CE had)
    - figure out why map editor does not scroll w/ arrow keys
    - rendering error when hitbox display lines extend beyond sprite display
    - PxeEntry contains an EntityData that doesn't get updated when npc.tbl is modified (i think this is fixed now)

    Booster's Lab V0.5.0.0

    - Open source oooOOooOOoo
    - Add shortcut keys to Load, Load Last and allow enter key to open maps from maplist [FDeityLink]
    - Fix various bugs related to CS+ modding [GIR]
    - Add a confirmation dialogue to map deletion [Leo40]
    - Expose editor mode as a command-line option
    - Add some more hacks [EnlightenedOne + Noxid]
    - Fix bugs in entity selection
    - Allow pasting into certain text fields
    - fix internal name of sfxlist so editor can run on case-sensitive filesystems

    - Improvements to the behaviour of fill and replace
    - allow map list to work if resorted

    - Make tilepen static (you can copy/draw tiles between maps)
    - Add file checker to the action menu

    - Change how graphics are created in some areas to hopefully address clipping issues

    - Support different encodings in TSC editor (set in project config)

    - Made the selection list a set, preventing double-selection bugs
    - fixed pasting entities which was broken in previous release
    - TSC previews for <GIT now show the correct items

    - Added more hacks to the hackinator, including TSC+
    - Selecting a stack of entities brings up a popup letting you choose which to select, rather than just always picking from the top.
    - Fixed a bug where changes to npc.tbl would not save in certain conditions.
    - Fixed npc placement when shifting the map
    - Added delete option to the context menu for entity editor
    - added drag-select to entity editor
    - you can now use ctrl-a to select all entities on the map in entity edit mode
    - you now have to double-click an NPC type in the NPC list to change the type of a selected entity
    - the command to add an entity to the map has been changed to the 'i' key, previously it was double-click
    - removed cairn from entityinfo.txt
    - updated sfxlist by zxin I think

    - Added a gradient layer for TESS, new nxm format number 0x33
    - Fixed some other things for GIR
    - massive performance boost for the tile view
    - added some hackinator hacks & fixed a few that were busted

    - Added a TSC argument decoder to the TSC thing, so you can see facepics and stuff
    - Made editor controls collapse to the left of the window to give more flexibility for panel placement

    - blaze it

    - Added "Checkbox" field type to Hackinator parser
    - Added Randolf's Polar Star variant hacks
    - Expanded on the title screen hack
    - Hex patcher no longer requires bytes be properly spaced

    - Added an "Export mod" option to the file menu

    - "ctrl-s" shortcut in TSC no longer causes the tab to be marked as modified
    - Fixed a bug where using save-all and Load Last in combination could result in old data overwriting your maps

    - Small bugfix to disabling scriptsource option
    - Added warning if TSC to load is newer than ScriptSource
    - Added option to disable ScriptSource altogether
    - Mapdata no longer auto-lowercase
    - updated blConfig to include more options
    - Possibly fixed the issue where changing the # of maps could cause the EXE to become nonfunctional
    - Editor warns if EXE has been modified before overwriting

    - Added player physics hack
    - Added title screen hacks by sold
    - Added trolly hack
    - Added "info" and "data" field types

    - Reorganized packages in the source
    - Hackinator implemented
    - Added a bunch of starter hacks to match what CE can do

    - Shift map can now shift lines
    - Clicking line nodes works if lines are "off grid"
    - Shift map dialog no longer inverts X and Y

    - Enforce UTF-8 character encoding on mapdata files. This may break shit.

    - map resize now uses min size from config
    - Changes to the line editor for GIR

    - updated the mapdata version for CSEngine / Kitten Battle Dungeon

    - Entity copy-paste was using tile size scaling rather than entity res scaling
    - Fixed the ShiftMap dialogue (was failing on non-square maps, and entities were not

    moved according to the appropriate scales)
    - npc list and tileset names should do a better job of ignoring case.
    - added option to shift NPCs, Tiles, or both to the shift map dialogue
    - Changing the map's tileset should now change the tileset bounds to reflect the new

    dimensions, if the map is currently open.
    - Fixed it so that opening a map that has been starred doesn't let you open multiple tabs for it
    - added some more help docs
    - replaced the entityinfo file with the old version

    - Made the undo/redo stop spamming the logfiles so much
    - Pressing delete key will toggle "eraser" mode for the current tile selection, where all tiles in the pen will be set to tile 0
    - MAYBE fixed that thing with the pxa OOB messages and some more fringe errors in the tile thing honestly I have no idea what I'm doing
    - Made the program yell more when it can't save tsc pxa or pxe files
    - changing the pxa will now cause the map to be flagged as modified
    - changes to the entity's properties will now cause the map to be flagged as modified

    - made adding non-number inputs to NPC fields more stable
    - pressing ctrl-s or ctrl-shift-s (save shortcuts) in the script tab will trigger the proper event in the main window
    - fixed an exception being thrown when trying to duplicate a map if no map was selected
    - Added a "remove all entities" to the entity pane's right-click menu
    - Added a "Tile #" display to the tileset pane right-click menu (the one what which you set the tile type with)

    - Fixed a bug causing Out Of Bounds errors in the map editor, which messed up undo/redo
    - Fixed tiles with ID 0x80 + not appearing in Classic editor mode
    - Title bar should now show correct
    - Added support for SpeechBubble events to the script parser (KittenBattleDungeon feature)

    - Fixed a bug in creating <CMP scripts where it would use map dimensions rather than selected block

    - Changed editor to allow any number of entities
    - Can now add entities to the master entity list and export updated EntityInfo.txt (note to cave story modders: don't do this)
    - Fixed a bug where an entity could not be loaded if it had no categories
    - Updated EntityInfo.txt from bombchu link
    - Added some future help files to the index (these have not been written)
    - fixed a bug where entities assigned to non-drawable tilesets would also not draw their NPC box or name
    - Clicking outside the map boundaries no longer draws a tile at the edge of the map
    - the hackinator can kind of load some input fields now
    - added a copy of the changelog to the download
    - Added a dialog to edit the bl.ini settings to the view menu
    - Added copy-paste to entities (ctrl-c, ctrl-v)
    - Improved camera focus when scroll-zooming
    - more catte
    - made some of the menu buttons grey out if they are invalid rather than giving a popup error

    - Japanese translation available(!)
    - Exports csmap.bin (vanilla format mapdata)
    - Added scrolling with ctrl-mousewheel
    - Fixed error with map pane not scrolling with arrow keys
    - Switched logging back on (I accidentally turned it off in the prev. version)
    - Change internal dummy resources to png because I'm retarded
    - Revised FloodFill algorithm to hopefully be more efficient
    - Fixed some wordings of stuff
    - Added a bl.ini file for configuration crap
    - externalized entity flag type strings
    - Made the mapdata maybe more stable, maybe less stable
    - misc. shit I never wrote down

    V0.2.5.1 :
    - Log size increased from 30k to 300k
    - Bugfix to saving stage.tbl files from CS+, should now write the proper file length
    - Misc. display options should now save between sessions
    - Increased search scope for npc / tilesets / backgrounds - Base files should now be selectable for mapdata editing in CS+

    - quick fix to make it so it can *save* the scroll types that it now was able to read properly...
    - Changed how TSC defines are loaded
    - Deleting a map *should* modify the TSC of all maps to refer to the new map number when map nums are shifted
    - can delete many maps at once. Please note I still don't really think you ought to delete maps.
    - Can move maps mapdata with the move map thing
    - Crappy output logging

    - Can read scroll type from mapdata in a CS exe
    - Duplicate implemented
    - Automatically removes (C)Pixel requirement
    - Automatically changes image extension to .bmp because there's no reason not to 99% of the time.
    - Added to Action menu a button to open arbitrary TSC files like head.tsc
    - Fixed a bug where double-clicking the TSC command list only put stuff in the first script you opened. Now it goes to whichever last had focus.

    - Fixed a bug where saving the EXE twice without closing the application would corrupt the file header
    - Improved the splash page and map editor background
    - Added a License and a runonce popup to make you accept the license before using the software
    - Limited mapname and file input fields to 31 characters
    - Fixed a bug in mapdata mode where pressing enter in the textfields would cause 2 dialogs to spawn instead of one.
    - Updated tile types to be more accurate
    - Changed map display to more accurately reflect ingame appearance

    V0.2.2.1 (unreleased)
    - Added pretty colours
    - fixed a bug where the asterix wasn't showing up by map tabs that had been changed
    - Added a splash page
    - Added the ability to generate CMP and TRA commands via right-click
    - (finally) added the "New Mod" option
    - fixed a bug where "cancel" didn't work when closing the program and save prompt appears
    - Pressing a letter while the TSC command list is selected will scroll to the first TSC command starting with that letter
    - Added shortcuts for layer modes (alt + 1-4 to set active layer, alt + 6-9 to set visible layers)
    - Added shortcuts for the draw mode (alt + d, f, r, e, c)
    - Added a "Run Game" to the Action menu
    - Added the Flag and <TRA list generator
    - Added // comments to the TSC editor
    - Added zoom shortcuts (ctrl-plus, ctrl-minus for map. Shift & the same keys does tileset)
    - Can now open .pxm files without loading a whole project / exe thing (don't actually do this)
    - Fixed a bug with the tileset undo related to layers, and one related to unusual source origins.

    - Added npc.tbl editor
    - Made "Load" automatically snap to the most recent loaded directory
    - Added warning when converting SW mods
    - Added Javascript parser
    - Added SFX list (.txt)
    - Entity list can now be filtered by category (2xclick category lists)
    - Added mostly-working undo/redo to entity editor
    - Updated help files to compilation by JazzJackalope

    - Improved functionality to entity editor (entity attributes, list sorts)
    - Improved TSC list by Jackalope & Lace
    - Semi-functional hex patcher
    - Added shift-dragging to entity editing screen
    - minor performance fixes

    - (finally) implemented the Entity Editing interface, and the various components therof
    - More centralized data storage (slightly smaller memory footprint)
    - Dummied out the 'New' file menu option because it really doesn't do anything yet
    - Fixed behaviour of in-window mapdata editor
    - Various small optimizations

    - Changed backslashes \ to forwardslashes / for internal file paths to improve compatibility with OS that aren't windows.

    - True support for saving mapdata. This includes deleting (careful with this one), modifying, and adding maps. Should work on CS and CS+ with a CE, Sue's or Vanilla executable
    - Fixed numerous bugs and added many more popup warnings that would have previously gone un-alerted (except maybe in console) leaving people potentially baffled
    - Added an override for 2x editing .exe mods: add a file "32_override" to the directory where the editor is being launched.
    - Added a dialogue to edit the mapdata without actually opening the map
    - Checks for unsaved changes before closing tabs/the editor
    - Fixed a bug where .pxa files weren't actually getting saved
    - tons of internal refractoring to make it actually work
    - Fixed the bug where the tileset tile selector's graphics got clipped if you set the tileset zoom above 1x
    - Probably more but as usual I can't remember.

    V0.0.4.0 -- I don't consider this to be a stable release, in that it has a high prob. of breaking your exe and/or files and/or spirit.
    - If you open a mod that has been edited by Sue's Workshop then it will automatically be restored to sanctity. Well, not if you've already tried to replace resources in it. Ain't nobody can fix that.
    - If you make changes to the mapdata then they will be preserved if you save the map.
    - You get a warning if there are pending exe changes that haven't been saved, if you try to close the program. Still nothing for the maps themselves though.
    - "Resize Map" now does something. I didn't really test this very well.
    - You can delete maps but if you don't use the Save All button expect some... unintended consequences.
    - More feedback when there is a failure on resource load (more as in not none)
    - Fixed a bug where entities wouldn't follow the map's scale
    - Some other small changes that I can never remember

    - Minor adjustments to the TSC lexer
    - TSC files can now be saved
    - Can switch between displaying defines and TSC commands
    - Help window changed from a dialog to a frame
    - Fixed a bug where popping out the tileset always made it open the tileset of the most recently opened map
    - Changing the map name will now properly update the TSC tabs and map list
    - All windows will remember their last position, assuming the program terminates gracefully. Delete "editor.rect" to restore defaults.

    - Added defines display to TSC window
    - Added help system and a few tutorials
    - Added "About" window
    - Added "Actions" menu to menu bar
    - Added "Help" menu to menu bar
    - Script editor now resides exclusively in a seperate window
    - Improved behaviour of dialogs (made them child to main window rather than free-floating)
    - Added a "notes" thing for writing yer' notes

    - Script is now highlighted pretty and has the Command Ref on the side (but doesn't save)
    - Mapdata tab has stuff in it now and that stuff makes changes to the map pane (but don't save)
    - minor interface tweaks and improvements (I forget the other stuff)

    - Tileset window can be "popped out" (try double-clicks)

    - All tile draw modes are functional
    - Tileset backdrop has a pattern effect and can be changed colour for maximum viewability
    - Saving is possible (watch out!)
    - Rearranged the positioning of some UI elements for better usability
    - Shift map is implemented
    - Undo/Redo is implemented
    - Can load mods from CS+ (open stage.tbl)
    - drag scrolling (shift-click-drag)
    - Improved handling of opening tabs
    - Tile types can be edited by right-clicking
    - Display of entity sprites and names
    - some more stuff??? ?

    - No longer "temporarily renames" files from pbm to bmp
    - CE_Tiles.png now inside the jar

    - First release. Mostly Tiles perspective has been worked on; others are placeholders.
    Last edited: May 12, 2017
  2. Jan 15, 2012
    Not COMMA
    Join Date: May 9, 2011
    Posts: 348
    Age: 20
    :D :D :D :D
    Hurray! :D
    Will there be a way to edit some of the assembly? (Like jump physics?)
  3. Jan 15, 2012
    Noxid Online
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    Assembly hacks wouldn't be cross-platform of course, but I could possibly include a dialogue to apply some common hacks. First I'm going to focus on getting the core functionality done before thinking about fancy things like that though.
  4. Jan 16, 2012
    Been here way too long...
    "Life begins and ends with Nu."
    Join Date: Oct 18, 2011
    Posts: 2329
    Age: 18

    Why can't CS editors have original names

    The closest name to original is Sue's Workshop

    And it still just means Editor. For CS.


    This looks so cool Nox. I can't wait for it to actually edit! :D
  5. Jan 16, 2012
    "In Soviet Russia, graves keep YOU!"
    Join Date: May 2, 2010
    Location: beverly hills is where i WANT to be
    Posts: 743
    Age: 23
  6. Jan 16, 2012
    Cave Story
    Member Title
    "All your forum are belong to us!"
    Join Date: Mar 9, 2011
    Posts: 629
    Age: 20
    From the screenshot you posted, I can see that it already looks like the makings of a very good editor. Hopefully, one day we'll have the ability to delete maps and actually be able to create new ones. I'd also jump for joy if we could make basic ASM hacks, such as modifying jump physics, within the editor.
    Thank you, Noxid!
  7. Jan 16, 2012
    Senior Member
    "Master using it, and you can have this!"
    Join Date: Jun 16, 2011
    Location: Throne of the Internet!
    Posts: 74
    Age: 105
    can you build a custom map without Scripting? just drag a place tiles from what the screen shot looks like.
  8. Jan 16, 2012
    Noxid Online
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    Have you ever even used a CS Editor before
  9. Jan 16, 2012
    Senior Member
    Join Date: Dec 7, 2011
    Location: Australia. In Bob Katter's secret techno-dungeon.
    Posts: 206
    Age: 27
    I will be watching this very closely.
  10. Jan 16, 2012
    Senior Member
    "Master using it, and you can have this!"
    Join Date: Jun 16, 2011
    Location: Throne of the Internet!
    Posts: 74
    Age: 105
    No, never. Tried using S.M.I.L.E. , But i Failed. (Super metroid editor)
  11. Jan 16, 2012
    Been here way too long...
    "Life begins and ends with Nu."
    Join Date: Jan 4, 2008
    Location: Lingerie, but also, like, fancy curtains
    Posts: 3053
    Noxid, you make me sick :[
  12. Jan 16, 2012
    Captain Fabulous
    when the everything hits just right
    "Life begins and ends with Nu."
    Join Date: Apr 19, 2009
    Location: when the meme ages just right
    Posts: 3788
    Age: 14
    Everything that is supposed to work is working for me. That terrible glitch I had when I tested it before was fixed, so thanks for that. It runs more slowly than it should on my dinky little netbook. Oh well, I wouldn't be modding on this thing anyway.
    As for the UI, I think hotkeys would be a great improvement. I don't have any bright ideas for specifics, but you have the whole keyboard at your disposal, so perhaps you can think of something. Use the number keys and function keys and stuff, I dunno. But as far as the mouse goes, it's a good GUI. The only problem is the hot pink background used for the tileset, which will be confusing when I make Flamingo Story and the Cotton Candy Menace.
  13. Jan 16, 2012
    Only Love, Maximum Love, Forever
    "Life begins and ends with Nu."
    Join Date: May 6, 2009
    Location: somewhere new
    Posts: 2138
    Age: 23
    The scene in my upcoming mod, The Mauve Army invasion of Planet Magenta is also quite confusing to work on under these conditions.

    Sorry I couldn't help it
  14. Jan 16, 2012
    Lvl 1
    "Life begins and ends with Nu."
    Join Date: May 28, 2008
    Location: PMMM MMO
    Posts: 3714
    Age: 26
    I suspect that you have ULTERIOR MOTIVES in making this Noxid.

    I'm on to you....
  15. Jan 16, 2012
    Noxid Online
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    I guess you'll just have to get over it.
    Oh god yes, hotkey EVERYTHING. I'm addicted to those.
    And with Java, there's a thing where it will run really slow when the program first starts up, especially with GUI elements, but after you get clicking the buttons a few times it's supposed to get itself a situated in memory and speed up a bit. If it's still a bit too slow though, I can see what I can do to optimize it some.
    When *don't* I have ulterior motives? :chin:
  16. Jan 17, 2012
    Been here way too long...
    "Life begins and ends with Nu."
    Join Date: Oct 18, 2011
    Posts: 2329
    Age: 18

    Where. Are.

    My waffles.

    I want my waffles.
  17. Jan 17, 2012
    Noxid Online
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    That feature isn't implemented yet.
  18. Jan 18, 2012
    Cave Story
    Member Title
    "All your forum are belong to us!"
    Join Date: Mar 9, 2011
    Posts: 629
    Age: 20
    Do you have any idea when we will be able to save our work? As soon as you do that, I think this would be a wonderful editor to use. The hot pink doesn't bother me that much, but I wouldn't mind a change either. I also don't use hotkeys currently ( I didn't even know they were implemented in CE) but I see how they would be useful.
  19. Jan 18, 2012
    Been here way too long...
    "Life begins and ends with Nu."
    Join Date: Jan 4, 2008
    Location: Lingerie, but also, like, fancy curtains
    Posts: 3053
    Checkerboard bg is the traditional, I believe. You could also give the option of changing the bg color.
  20. Jan 18, 2012
    Noxid Online
    In my body, in my head
    "Life begins and ends with Nu."
    Join Date: Aug 28, 2009
    Location: The Purple Zone
    Posts: 5941
    Yeah, I was thinking either the checkerboard or a Colour Picker
    But not both :sun: