Repository navigation
Releases: UwUCammie/CammieEngine
Release list
v0.0.46 alpha - updates move to uwucammie.com
v0.0.46 is the final GitHub release of Cammie Engine.
Downloads, future releases and changelogs now live at uwucammie.com/cammie-engine.
Update to this release once using Settings > Check for Updates, or download and extract the latest Windows ZIP from the website. Older versions can still use this GitHub release to acquire the new updater. After this update, the engine checks the website and downloads only changed or missing files instead of the full ZIP.
- Every downloaded file is verified with SHA-256 before installation.
- Updates install after the game closes and roll back if installation fails.
- Settings, imported mods and edited assets are preserved; unchanged official assets can receive updates.
- The website also offers the complete Windows x64 ZIP for new installations and the changelog.
Source code and issues remain on GitHub. This is an incremental alpha after v0.0.45; unfinished compatibility and roadmap requirements remain open.
v0.0.45 alpha
Incremental alpha after v0.0.44. Remaining roadmap requirements stay open.
Removing mods
- A mod that could not be refreshed after an update (for example an older copy imported as the wrong engine) can now be deleted from Freeplay. Before, the removal was refused as "active or reserved", and when it did start it stopped on the first file already missing from disk and left the library locked.
- Files that are already gone are skipped, and a neighbouring mod with a missing file no longer blocks a removal.
V-Slice
- Expurgation: the health bar art no longer hides the health icons. Health bar parts, icons and strumlines keep the base game's draw order when a script adds its own sprites.
- Hit splashes of note styles with their own offsets (Tricky's, for example) now burst on the receptor instead of about 50 pixels right and 100 pixels low.
- Scripts that read the current beat or step no longer see the previous one on a beat line. Expurgation's pillar dodge now works as designed: press space in the last beat of the countdown (about 22.7 to 22.95 s). Pressing earlier or letting it pass still ends the run, and botplay cannot dodge.
Nightmare Vision
- Songs such as Silly Billy no longer stop with "Missing historical animation for lane 0 in noteSplashes".
Known limits
- QT Rewired's scripted speaker sprite is not supported yet.
- FNIA Ugh's intro cutscene video is not found.
Download
CammieEngine-v0.0.45-windows-x64.zip
SHA-256 ac6bac8a10c57eb4135b3b39143831f0a52fc2bc43e5d159943dc7dcd9881c69
v0.0.44 alpha
Incremental alpha after v0.0.43. Remaining roadmap requirements stay open.
New menus
- The main menu, options and importer now share Freeplay's look, and each has its own layout: a front page with info about the highlighted entry, options with a section sidebar, and an importer laid out as steps (Type, Source, Scan, Import).
- The importer moved from Options to an Import entry on the main menu, directly under Options.
- The title logo's CAMMIE letters now match ENGINE's pink neon, and a light blue, pink and white shine sweeps across the lettering every few seconds (off with Low quality).
V-Slice
- Songs that cancel the countdown and then start (such as Expurgation) now start.
- Character scripts on Animate atlas characters now run, fixing duplicate characters and props appearing too early.
- Notes no longer stay lit after you hit them, and a held key shows the press pose.
- Hidden strumlines hide their notes too, and script-loaded sprites and Animate art are imported, so health bar glows, signposts and similar effects show.
- Songs on the base game's own stages (such as the Erect limo ride) get their background, and variant characters (such as Boyfriend Beach) get their vocals.
Psych and Nightmare Vision
- Characters with a space in their name (such as the Five Nights in Anime Boyfriend) stand in the right place, and add-on songs find characters and health icons in the mod they belong to.
- The camera moves at the original engines' speed (it was about twice as fast), and mods with a smooth-camera script no longer crawl between characters.
Importing and removal
- Moving or renaming the game folder after removing a mod no longer blocks every import and leaves Freeplay on "checking".
- Leftovers from interrupted imports are cleaned up, the importer says why it can't start, and re-importing V-Slice mods with Erect songs after a removal works.
Known limits
- QT Rewired's scripted speaker sprite is not supported yet.
- In Expurgation on botplay, the player can die at about 22 seconds.
Download
CammieEngine-v0.0.44-windows-x64.zip
SHA-256 cc0610914e5f5a78625641084e4ea689ef2571e5291a244273227f5b754f3541
v0.0.43 alpha
Incremental alpha after v0.0.42. Remaining roadmap requirements stay open.
Mod removal
- Removing a mod while your mods are being refreshed after an update no longer leaves you on a blank screen.
- The removal popup now says the mods are being refreshed and shows the progress. When the refresh finishes, it moves on to the normal "Remove installed mod?" question by itself, with Keep as the first choice.
- If a refresh finishes while the removal check is running, the check runs again, so you always confirm up-to-date information.
- Going back shows "Returning to Freeplay..." instead of an empty screen.
Known limits
- Checked with a smaller refresh than a large Nightmare Vision mod; test runs are muted.
Download
CammieEngine-v0.0.43-windows-x64.zip
SHA-256 ed794ee1019dd1fc2446158294e2d030ad3efe710a8e32cfd396533d977f2dd6
v0.0.42 alpha
Incremental alpha after v0.0.41. Remaining roadmap requirements stay open.
Mod removal
- Removing a mod now works for broken and linked imports. Removal goes through a clean screen that closes every mod menu and mod session first, so "Package is active or reserved" no longer blocks it.
- If something still holds the mods, the popup offers to close the running mod menus and try again.
- Removals no longer fail and roll back when a shared song or week list contains non-English text.
- Imports with a missing index record can be removed, and a failed attempt no longer leaves the library stuck on "checking package status".
Faster retries
- Retrying after a death or from the pause menu no longer shows the loading screen. The song restarts straight away with the images, audio and scripts it already loaded.
- A Psych retry went from about 8 seconds to between 1 and 3 seconds, and the first retry after launch is as quick as later ones.
- Scripts that restart the song use the same quick retry.
Nightmare Vision
- Mods with several content packs store the game's base assets once instead of once per pack. One example went from about 8.7 GB to about 0.5 GB on disk. Existing imports shrink on their next refresh.
- Re-importing keeps every pack in the same place, so scores are kept and no empty duplicate folders are left. A large re-import went from about 13 minutes to about 4.
- Imports no longer copy programs, DLLs, video player plugins or Python files bundled inside a mod's assets.
- Content packs show their base characters, older packs show their rating and combo images, and HUD scripts that read hit counts work again.
Psych
- Pixel stages give the song pixel notes and UI. Note-type sprite sheets show, and skins load regardless of letter case.
- Character vocal files, the onEvent strumTime value, legacy Boyfriend and StrumNote construction, more LuaUtils helpers, hxCodec and vlc videos, and the mod's own game over sounds.
- Scripts no longer stop on a missing addHaxeLibrary class, a missing Paths.image or a missing text object.
V-Slice
- Characters and stage props made with Adobe Animate texture atlases import and play.
- Custom song menus can start songs and weeks through SongRegistry and LevelRegistry.
- super calls inside callbacks, script enums and field initialisers, subtitles, AtlasText, camera fades, haptics, preferences and reflection helpers.
- HUD modules that use combo popups, countdown or scroll speed tweens are no longer dropped, and mods with DDS or ASTC sheets or newer folder layouts import.
Smoother songs
- Songs that keep a lot in memory pause for memory cleanup about half as often.
- Script translation, note skin lookup and Psych song loading do much less repeated work (one song loads in 5.0 s instead of 11.7 s).
Known limits
- Retrying a song keeps two small score text images per retry.
- The look of Nightmare Vision pack songs was checked through logs and frame timing; test runs are muted.
Download
CammieEngine-v0.0.42-windows-x64.zip
SHA-256 64b19c98c99b4629a503f93d12a22f93a8d6957cec1d4dca6b66724f737286a0
v0.0.41 alpha
Incremental alpha after v0.0.40. Remaining roadmap requirements stay open.
Freezes fixed
- Psych songs with heavy Lua scripts (for example Isotope from the Hypno's Lullaby port) no longer freeze for several seconds at a time. This was a v0.0.40 regression.
- Fixed a crash when a script swaps characters right after adding them with addCharacterToList.
- V-Slice songs with many scripts load far faster. One that sat on the loading screen for close to a minute now loads in about 12 seconds.
Smoother songs
- Lua scripts, script callbacks, property lookups, sprite and image loading, and the HUD all do much less work per frame.
- Garbage collection pauses are rarer and shorter, and songs use about 70 MB less memory.
- Freeplay scrolls more smoothly and opens faster.
Cutscenes
- Skipping a cutscene with Left Alt now takes you to 5 seconds before gameplay, so you can see the hand-over.
- Intro videos play their last 5 seconds after a skip, then the countdown follows. Scripts that wait for the video stay in step.
Results screen
- The score counter is no longer very loud for its first few ticks.
Psych and Nightmare Vision
- Mod rating and combo images, game.triggerEvent, camera.setFilters, character groups in every song, writable default strum positions, Psych 0.7 LuaUtils imports and older ClientPrefs fields.
- Full string.find, match and gsub results in Lua, per-character vocal files and translated dialogue.
- Shaders that give uniforms starting values now compile.
- Nightmare Vision gets scripted pause menus, scripted menus that can start songs and weeks, FunkinSound and more stage classes.
- Psych, Nightmare Vision and HScript callbacks now share one path with the same order and stop rules.
V-Slice
- Scripts run in V-Slice's order with module priority and stopPropagation. Conversations and the missing lifecycle hooks work.
- AdjustColorShader, IntervalShake, loadSparrow/loadTexture art, final fields, casts and import aliases all work.
- Imports made before this version are refreshed automatically.
Importing
- Psych, Nightmare Vision and V-Slice weeks become Story Mode weeks.
- You get a warning before importing with the wrong engine.
- Imported mods cannot reach files outside their folder through folder links.
Known limits
- Two song-end results screens still take one 200 to 340 ms frame to build.
- Loudness changes were checked from logs; the test runs are muted.
Download
CammieEngine-v0.0.41-windows-x64.zip
SHA-256 6599874828f12aaef0d89141a80208ce8f63db8b27b02001acfdc430971e4a21
v0.0.40 alpha
Incremental alpha after v0.0.39. Remaining roadmap requirements stay open.
Psych and Nightmare Vision share one implementation
Nightmare Vision is a modified Psych Engine, and the two now share one implementation wherever they behave the same: preferences, Discord presence, script discovery, built-in chart events, camera, hit and miss handling, character swaps, stage files, event preparation and script globals. Compatibility code now calls base game functions instead of carrying its own copies.
- Nightmare Vision mods start on the note keys you bound in the engine and follow the zoom camera option.
- Change Character no longer builds the new character mid-song; characters are built while the song loads.
- A miss in a song with separate player and opponent vocals only silences the player's voice.
- Mods that ship their own hit or miss sounds play them.
Lua scripts
- Far fewer scripts get switched off: any if/else or function layout, colon string methods on any value, multiple return values, metatables,
//, repeat/until, varargs and real Lua patterns all work. If one function cannot be translated, only that function is disabled. - Scripts imported earlier are translated again from their original file when the song loads, so you don't need to reimport.
Psych
- Gameplay globals such as botPlay, curStage and the default character positions, plus the missing Note, Character and PlayState properties.
- Tweens accept eases in any letter case; tagged sounds, onSoundFinished, the Play Sound and Set Property events, and startDialogue with its file and music.
- Stage files apply camera_speed and the pixel UI, and Psych 1.0 stage editor sprites are built.
Nightmare Vision
- onCountdownTick, song start and end callbacks, countdown controls, scripted substates, menu state classes, the full video sprite API and more classes available without imports.
V-Slice
- Scripts can cancel game over, hold the countdown and keep the pause menu open; note events apply the health, score and rating changes scripts make; onNoteHoldDrop and SetTargetBopSpeed work.
- Import keeps audio offsets, time signatures and per-note parameters.
Importing
- Flat Psych 1.0 charts load, and Psych mods without pack.json or Lua are detected.
- Nightmare Vision content packages can be selected on their own, and more V-Slice mod shapes are detected.
Mod removal
- Removing a mod works after the engine folder was moved, and is no longer blocked by a failed import or by a folder with no ownership record.
- Mods tied to the one you remove are listed and removed with it, after a second confirmation. Every removal asks NO (green) or YES (red), with NO selected first.
Stutter
- The pause menu opens without a freeze, hit sounds are decoded once, rating images load with the song, and memory cleanup happens on the loading screen and pause menu.
- Script callbacks make less garbage, and Freeplay scrolling does less work per frame.
Known limits
- Some heavily scripted songs still have occasional single-frame spikes of about 100 ms.
- A Psych rating script that used to be disabled now runs but reports the wrong note on hits.
- V-Slice songs were not played in a native test before release.
Download
CammieEngine-v0.0.40-windows-x64.zip
SHA-256 4c656c091b2fd573984d1d11bd471a3bd6682fb5f265fefa51cbe079be55f282
v0.0.39 alpha
Incremental alpha after v0.0.38. Remaining roadmap requirements stay open.
Cutscenes
- Left Alt skips cutscenes, instead of Enter. This covers cutscene videos during a song and intro or ending videos.
- Enter is the pause key again during every video, and Space no longer skips intro videos.
- Right Alt does nothing.
- What counts as a cutscene is unchanged: a video that plays while the chart has no notes for you. The song jumps to where the chart resumes and events in between still fire.
Known limits
- A physical Left Alt press was not tried in a native run before release; the skip was confirmed through the test harness. If tapping Left Alt appears to do nothing or the game stops reacting to keys afterwards, please report it.
Download
CammieEngine-v0.0.39-windows-x64.zip
SHA-256 b0f59ad646e59ed150cfe9fd618c1c3c8414f4d27f535f7c183d67dc106be835
If the in-game updater fails with a file write or SHA-256 error, check free disk space first.
v0.0.38 alpha
Incremental alpha after v0.0.37. Remaining roadmap requirements stay open.
Freeplay
- Star field: the selected card is a window onto a field of hundreds of faint stars. They enter from just beyond the right edge, bend slightly, and fade out before the middle of the card. Stars crossing the top, bottom or right edge are cut off by the card.
- Rating key: compact difficulty stars no longer carry a number. A gradient key above the song list shows what the colours mean, marked at 0, 5, 10, 15 and 20+. The selected card still shows each rating.
- Visualizer: bars are stacks of outlined blocks, green at the bottom and red at the top, that sink back at a steady rate.
- TAB and F1 menus: these are now centred translucent popups over the dimmed song list, with the selected chart shown as a card above the choices.
Loading screen
- The characters are cut out cleanly, without the yellow-green rim from the original backdrop, and the cut edge is feathered.
- The characters have a drop shadow.
- Three times as many background stars, in a range of sizes and opacities.
Known limits
- The TAB popup and the menus opened from the popups were not captured in a native run; they share the F1 popup's code.
- The visualizer was only seen with a quiet preview in a native run.
Download
CammieEngine-v0.0.38-windows-x64.zip
SHA-256 dfd8ae5908905a424bfbc5155dd030d8ca50dde3358deca5656bc5ce38401959
If the in-game updater fails with a file write or SHA-256 error, check free disk space first: the update needs room for the download and its unpacked copy.
v0.0.37 alpha
Incremental alpha after v0.0.36. Remaining roadmap requirements stay open.
Freeplay
- Library menu (F1): hide or show the selected chart, hide or show its mod, rename the mod, restore its name, delete the mod with all of its charts, and list hidden entries again. A chart is never deleted by itself.
- Duplicate base game charts are hidden. An imported copy needs the same title, tempo and cast, plus identical audio or the same length with a matching note count, so remixes and charts with their own characters stay. Turn on Show Duplicate Base Game Charts in the options to see them.
- Large FREEPLAY heading in the bottom right corner that pulses to the selected song's tempo. The list and details use the space it left.
- Hover stars are a steady stream now: more stars, a little faster, shorter tails, nothing random.
- The visualizer goes green, yellow, red by loudness.
- Key hints have their own key colour and dividers.
- Compact difficulty stars show the whole number inside the star; the selected card shows the full rating under it.
- Cards no longer react to the pointer while it is hidden.
Cutscenes
- Enter skips cutscenes. A video counts as a cutscene while the chart has no notes for you. The song jumps to where the chart resumes, events in between still fire and the audio lands where it would have been. A video that plays behind notes is left alone and Enter still pauses.
- Intro and ending videos take one Enter press instead of Space or a held key.
Imported mods
All of these are general engine fixes, found with two imported songs.
- Older Psych and Nightmare Vision scripts can use
camFollowPosagain, which keeps mirror and reflection layers in the world instead of stuck to the screen. - Older Nightmare Vision imports without an asset index read their own files, so stage scripts no longer stop half way.
- Psych Lua:
boyfriendName,dadName,gfName,songPath,curSection, preference globals, flatClientPrefsnames, judgement counters,showRating/showCombo/showComboNum,changePresence,getRandomIntexclusions, andsetGraphicSizenow refreshes the hitbox (full screen effects ended up in a corner). - A Lua script with a bare
returnbeforeelseiforelseis no longer disabled. - Fixed two crashes: a negative frame index in a script animation, and a sprite destroying itself when its animation finishes.
- Engine name and version labels drawn by imported scripts ("Psych Engine v0.7.0") are blanked.
Known limits
- The library menu, duplicate hiding in the live list and a physical Enter press were covered by unit tests, not by a native run.
- Dialogue, scripted cutscene timelines and Codename cutscene states do not use the new skip yet.
- A mod ending that launches its own bundled program is not run.
Download
CammieEngine-v0.0.37-windows-x64.zip
SHA-256 b09a73bb2dcfbe5f7ac3ed7a8d4946c265a07d9ba8c7e604bc9fccd8b92327d8