A downloadable game for Windows, macOS, and Linux

Buy Now$5.00 USD or more

Story

It’s the night of the royal ball! A night of excitement, festivities, and romance—as well as gruesome death for everyone in the castle, unless the irresponsible fairy godparent Ivy can change their fates.

Explore the castle, eavesdrop on its many inhabitants, and solve elaborate puzzles through careful (or not-so-careful) magical meddling. Everything in the castle is interconnected in ways that may not be obvious at first glance: turning candy into bananas might result in a broken statue, and revising a painting could lead to accidental arson.

Armed with just four minutes, your brains, and a time-traveling clock, can you bring this story to its happily ever after?

Features

  • Over an hour of narrative and point-and-click puzzles per playthrough
  • ~70k words, with multiple story paths and secrets to discover
  • Includes download of original soundtrack (5 songs)

Content warning: Death; blood; worms; alcohol use. Otherwise PG-equivalent.

Accessibility: Font select; text speed slider; assistive tooltips toggle. Game includes spoiler-free walkthrough PDF.

Four Before Midnight was made by Res, an indie game developer working from British Columbia, Canada.

StatusReleased
PlatformsWindows, macOS, Linux
Release date Nov 01, 2021
Rating
Rated 5.0 out of 5 stars
(10 total ratings)
AuthorRes
GenreAdventure, Interactive Fiction, Puzzle, Visual Novel
Made withRen'Py
TagsFantasy, Mystery, Point & Click, Romance, Singleplayer, Story Rich
Average sessionAbout a half-hour
LanguagesEnglish
InputsKeyboard, Mouse

Purchase

Buy Now$5.00 USD or more

In order to download this game you must purchase it at or above the minimum price of $5 USD. You will get access to the following files:

FourBeforeMidnight 1.3 - PC 126 MB
Four Before Midnight 1.3 - Mac 120 MB
Spoiler-free walkthrough 1.1 - PDF 41 kB
Soundtrack - MP3 22 MB
Soundtrack - WAV 187 MB

Development log

Comments

Log in with itch.io to leave a comment.

Hello! May I suggest uploading your games' data on Igdb.com? It's a site that keeps track of video games, and it will give a little visibility to them.

(+2)

Love the sense of humor in this game! :D

(+2)

Hello Res, you have a typo in the game description:

"Six Before Midnight was made ..."

(+2)

Corrected—thank you!

(+2)

Ran into a crash towards the end of the game.

I'm sorry, but an uncaught exception occurred.
While running game code:
  File "game/rpy_engine/engine_variables_process.rpy", line 763, in script
    pause 1.25
  File "renpy/common/000statements.rpy", line 453, in execute_pause
    renpy.pause(delay)
  File "game/rpy_engine/engine_room_2.rpy", line 5, in execute
    screen sc_room_2():
  File "game/rpy_engine/engine_room_2.rpy", line 5, in execute
    screen sc_room_2():
  File "game/rpy_engine/engine_room_2.rpy", line 9, in execute
    use sc_room_frame():
  File "game/rpy_engine/engine_screens_ui.rpy", line 95, in execute
    screen sc_room_frame():
  File "game/rpy_engine/engine_screens_ui.rpy", line 95, in execute
    screen sc_room_frame():
  File "game/rpy_engine/engine_screens_ui.rpy", line 99, in execute
    viewport:
  File "game/rpy_engine/engine_screens_ui.rpy", line 105, in execute
    transclude
  File "game/rpy_engine/engine_room_2.rpy", line 9, in execute
    use sc_room_frame():
  File "game/rpy_engine/engine_room_2.rpy", line 213, in execute
    if l_gul == 2 and s_gull != 0:
  File "game/rpy_engine/engine_room_2.rpy", line 214, in execute
    imagebutton:
Exception: Imagebutton does not have a idle image. (auto=u'button_gull_table_4_2_%s').
-- Full Traceback ------------------------------------------------------------
Full traceback:
  File "game/rpy_engine/engine_variables_process.rpy", line 763, in script
    pause 1.25
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/ast.py", line 1969, in execute
    self.call("execute")
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/ast.py", line 1957, in call
    return renpy.statements.call(method, parsed, *args, **kwargs)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/statements.py", line 278, in call
    return method(parsed, *args, **kwargs)
  File "renpy/common/000statements.rpy", line 453, in execute_pause
    renpy.pause(delay)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/exports.py", line 1525, in pause
    rv = renpy.ui.interact(mouse='pause', type='pause', roll_forward=roll_forward, pause=delay)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/ui.py", line 298, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/core.py", line 3101, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/core.py", line 3512, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/core.py", line 567, in visit_all
    d.visit_all(callback, seen)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/core.py", line 567, in visit_all
    d.visit_all(callback, seen)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/core.py", line 567, in visit_all
    d.visit_all(callback, seen)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/screen.py", line 432, in visit_all
    callback(self)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/core.py", line 3512, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/screen.py", line 443, in per_interact
    self.update()
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/display/screen.py", line 631, in update
    self.screen.function(**self.scope)
  File "game/rpy_engine/engine_room_2.rpy", line 5, in execute
    screen sc_room_2():
  File "game/rpy_engine/engine_room_2.rpy", line 5, in execute
    screen sc_room_2():
  File "game/rpy_engine/engine_room_2.rpy", line 9, in execute
    use sc_room_frame():
  File "game/rpy_engine/engine_screens_ui.rpy", line 95, in execute
    screen sc_room_frame():
  File "game/rpy_engine/engine_screens_ui.rpy", line 95, in execute
    screen sc_room_frame():
  File "game/rpy_engine/engine_screens_ui.rpy", line 99, in execute
    viewport:
  File "game/rpy_engine/engine_screens_ui.rpy", line 105, in execute
    transclude
  File "game/rpy_engine/engine_room_2.rpy", line 9, in execute
    use sc_room_frame():
  File "game/rpy_engine/engine_room_2.rpy", line 213, in execute
    if l_gul == 2 and s_gull != 0:
  File "game/rpy_engine/engine_room_2.rpy", line 214, in execute
    imagebutton:
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/ui.py", line 952, in _imagebutton
    idle = choice(idle, idle_image, "idle", required=True)
  File "/home/amy2/.config/itch/apps/four-before-midnight/FourBeforeMidnight-1.1-pc/renpy/ui.py", line 946, in choice
    raise Exception("Imagebutton does not have a %s image. (auto=%r)." % (name, auto))
Exception: Imagebutton does not have a idle image. (auto=u'button_gull_table_4_2_%s').
Linux-5.4.0-126-generic-x86_64-with-debian-buster-sid
Ren'Py 7.4.4.1439
Four Before Midnight 1.1
Sat Mar 11 13:21:12 2023

(+3)

Thank you for the crash report! It's a huge help, and using it, I've found and I believe fixed the issue. The new version 1.2 files should work correctly, but please let me know if any further problems arise!

(+1)

Hi! Just wanted to ask; do you take bug reports? I know this game is rather old but while I was trying to accomplish each solution, I ran into an error in the last puzzle: what I did was... [spoilers] meddle with the book -> meddle with the cake -> meddle with the feast -> meddle with the happy birthday sign. If it helps, I had also chosen to enact Solution A before. I'd like help solving this if you would be alright with it! Thank you regardless, and thank you for making a really fun game. The puzzles are really fun!

(+1)

Hi, and sorry for the delayed response! I had been trying to figure out how to fix this error, and was finally able to get to the bottom of it just now after looking through a crash report. If you download the version 1.2 files, it should be corrected there. Thank you so much for playing FBM, and I'm glad to hear you enjoyed it!

sorry for the late reply as well; thank you so much, and thank you for the game! ^u^

(+1)

Four Before Midnight is a fantastic follow up to Res' Jam and the Mystery of the Mysteriously Spooky Mansion. There's so much attention to detail around every corner. The game is hilarious; it's filled with all the wit, wordplay and healthy doses of irony that Res blends together so seemingly without effort. The puzzles are challenging and require sharp attention for causality, making it incredibly satisfying as you progress through each story beat. It does a wonderful job of making failure a feature (and trust me, you will fail at least a few times!), not something that punishes the player. The game wants you to succeed through experimentation, and teaches you how it all fits together.

The characters are also lovingly realized in Four Before Midnight. Each major character has their own distinct voice, well-polished visual clues to their personality (and how they fit into puzzles!) and clear, usually conflicting, motives.

The music has just as much personality. It blends dated instruments suitable for a royal ball (such as the always excellent harpsichord!) with chiptune inspired tracks that call back to the golden age of point and click adventures. 

I highly recommend this intelligent, witty, creative and polished game! 

(+2)

I'm so excited!!!