{"id":14529816,"url":"https://github.com/JakeSteam/junkbot-code","last_synced_at":"2025-09-02T00:32:55.597Z","repository":{"id":226087850,"uuid":"767709313","full_name":"JakeSteam/junkbot-code","owner":"JakeSteam","description":"LEGO's Junkbot source code \u0026 assets","archived":false,"fork":false,"pushed_at":"2024-03-27T19:13:39.000Z","size":11702,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-04T18:47:34.377Z","etag":null,"topics":["adobe","director","junkbot","lego","preservation"],"latest_commit_sha":null,"homepage":"https://blog.jakelee.co.uk/lego-junkbot-files-and-director-tips/","language":"LiveScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JakeSteam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-05T19:00:05.000Z","updated_at":"2024-11-18T17:55:38.000Z","dependencies_parsed_at":"2024-03-27T20:38:49.432Z","dependency_job_id":null,"html_url":"https://github.com/JakeSteam/junkbot-code","commit_stats":null,"previous_names":["jakesteam/junkbot-code"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JakeSteam/junkbot-code","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeSteam%2Fjunkbot-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeSteam%2Fjunkbot-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeSteam%2Fjunkbot-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeSteam%2Fjunkbot-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JakeSteam","download_url":"https://codeload.github.com/JakeSteam/junkbot-code/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JakeSteam%2Fjunkbot-code/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273213801,"owners_count":25065058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-01T02:00:09.058Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adobe","director","junkbot","lego","preservation"],"created_at":"2024-09-05T00:01:02.640Z","updated_at":"2025-09-02T00:32:54.347Z","avatar_url":"https://github.com/JakeSteam.png","language":"LiveScript","funding_links":[],"categories":["LEGO Video Games"],"sub_categories":["Fan Game Remakes and Tools"],"readme":"![](/files/screens_by_peter/complete_all_levels_msg.bmp)\n\n# Junkbot\n\nThis project extracts all of [Junkbot](https://en.brickimedia.org/wiki/Junkbot)'s source code and assets for preservation purposes. Previously, it was all buried within a 20+ year old Adobe Director project.\n\nNote that the `.ls` files are written in \"[Lingo](\u003chttps://en.wikipedia.org/wiki/Lingo_(programming_language)\u003e)\" (Adobe Director), not \"[LINGO](https://www.lindo.com/index.php/products/lingo-and-optimization-modeling)\" (mathematical modelling), or \"[LiveScript](https://en.wikipedia.org/wiki/LiveScript_(programming_language))\" (JS).\n\n## Project structure\n\n### Files\n\nThe `/files/` directory contains all extracted scripts (`.ls`), images (`.bmp`), sounds (`.wav` / `.mp3`), Flash animations (`.swf`), and text (`.txt`).\n\nTo try and keep a bit of structure, scripts are organised according to their \"cast\" (group) in the original project (e.g. `editor`, or `sound`), and with their script type (`cast_` / `behavior_` / `movie_` / `parent_`) as a prefix.\n\nA few interesting areas to highlight:\n\n- **All game sounds / music**: [`/files/sound/`](/files/sound/)\n- **All level data**: [`/files/levels/`](/files/levels/)\n- **All bricks**: [`/files/legoparts/`](/files/legoparts/)\n- **Secret in-dev names of levels**: [`/files/catalog/catalog text.txt`](/files/catalog/catalog%20text.txt)\n- **Animation components**: [`/files/dynamic/`](/files/dynamic/), filenames constructed by [`behaviour_legoparts manager.ls`](/files/Internal/behavior_legoparts%20manager.ls).\n\nAnd a few asset bugs:\n\n- One of [the walking animations](https://raw.githubusercontent.com/JakeSteam/junkbot-code/main/files/dynamic/MINIFIG_WALK_R_1_s2.bmp) has a mysterious pink thing ([`1.bmp`](https://raw.githubusercontent.com/JakeSteam/junkbot-code/main/files/dynamic/1.bmp)) in the top left.\n- Some assets (e.g. [`MINIFIG_walk_l_10_s1`](https://raw.githubusercontent.com/JakeSteam/junkbot-code/main/files/dynamic/MINIFIG_walk_l_10_s1.bmp) \u0026 [`MINIFIG_walk_l_1_s1`](https://raw.githubusercontent.com/JakeSteam/junkbot-code/main/files/dynamic/MINIFIG_walk_l_1_s1.bmp)) have a single coloured pixel in the bottom left corner.\n\nAnd just some assets I like:\n\n| [![](/files/screens_by_peter/119.bmp)](/files/screens_by_peter/119.bmp) | [![](/files/screens_by_peter/122.bmp)](/files/screens_by_peter/122.bmp) | [![](/files/screens_by_peter/plaque_president.bmp)](/files/screens_by_peter/plaque_president.bmp) |\n| :---------------------------------------------------------------------: | :---------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------: |\n\n### Reference\n\nThe `/reference/` directory contains a few useful files:\n\n- `director_reference.pdf`: Adobe's official 1,426 page guide to Director programming (in Lingo). Whilst this is useful for specific function definitions, Lingo itself is pretty readable if you know other languages.\n- `junkbot2_13g_asp.dcr`: The original Junkbot game, taken from [an Archive.org backup](https://web.archive.org/web/20020803205407/http://www.lego.com:80/build/junkbot/junkbot.asp?x=x\u0026login=0).\n- `junkbot2_13g_asp.dir`: The `.dcr` file decompiled ([guide](https://blog.jakelee.co.uk/decompiling-adobe-director-files/)).\n\n## Modified assets\n\n### SWA sound files\n\nSome sound files were originally `.SWA`, which can't easily be played. Luckily, this format is just `.MP3` with extra data, so renaming to `.MP3` made them playable. Thanks, [\"hp3\" from 2004](https://board.flashkit.com/board/showthread.php?368011-SWA-to-WAV\u0026s=8ddbd4570a8a14ad3138caa3912c99d0\u0026p=3051963\u0026viewfull=1#post3051963)!\n\n### 1-bit Bitmaps\n\nA few bitmaps were exported with a bit depth of 1 (e.g. black and white). These didn't work properly on modern OS, so have been converted to a bit depth of 8.\n\nThe affected files are the 9 \"cursor\" files inside `Internal`.\n\n## Utilities\n\n- [AntRenamer](https://antp.be/software/renamer) for bulk filename / extension changing.\n- n0samu's [DirectorCastRipper](https://github.com/n0samu/DirectorCastRipper) for asset extraction (although I did most of it manually).\n- If you're using VSCode, I recommend Mark Hughes' \"[Lingo Syntax Highlighting](https://marketplace.visualstudio.com/items?itemName=markhughes.director-lingo)\" extension.\n- 1j01's [HTML5 rewrite](https://1j01.github.io/janitorial-android/#junkbot).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJakeSteam%2Fjunkbot-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJakeSteam%2Fjunkbot-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJakeSteam%2Fjunkbot-code/lists"}