VN Ren'Py Stormbound Hotel [Ep.1-2 v0.2] [FromPlutoGuy]

1.00 star(s) 1 Vote

fromplutoguy

Newbie
Game Developer
Aug 26, 2025
19
48
39
itch baner part 2.png

Overview:
Stormbound Hotel
is an erotic VN set in a strange, isolated hotel.
You’re the host — stuck here by a deal you don’t fully understand, with someone constantly watching and commenting from the sidelines.
The first guest arrives during a storm.
Her name is Sara.
What starts as normal hospitality slowly turns into intimate situations where reading the moment matters. Push too hard or choose wrong, and the encounter is over.
Episode 1-2 focuses on Sara, Missy and introduces how the hotel works.
Thread Updated: 2026-01-09
Release Date: 2026-01-09
Developer: FromPlutoGuy - -
Censored: No
Version: Episode 1-2 - 0.2
OS: Windows, Mac. Linux
Language: English
Store:
Other Games: Hard Choice
Genre:
You don't have permission to view the spoiler content. Log in or register now.

Installation:
You don't have permission to view the spoiler content. Log in or register now.

Changelog:
You don't have permission to view the spoiler content. Log in or register now.

DOWNLOAD
Win/Linux/Mac: - - - -

sarac_5.png after_1.png dance_close_2.png tit_2.png think_6.png blow_6.png landline_1.jpg end_10.jpg third_fail_1.jpg end_3.jpg put_6.jpg
 
Last edited:

BlindPyrate

Member
Compressor
Feb 25, 2018
342
3,024
442
[Compressed] Stormbound Hotel [Ep.1 v0.1] [FromPlutoGuy]

Win/Linux [153 MB]

- - -

Mac [148 MB]
- - -

You don't have permission to view the spoiler content. Log in or register now.

Enjoy!
If you liked it, please drop a like or follow my uploads for more compressions.
 

youraccount69

I'm like a karate chop
Donor
Dec 30, 2020
9,561
4,428
487
StormboundHotel-EP1v0.1
You don't have permission to view the spoiler content. Log in or register now.
rpdl torrents are unaffiliated with F95Zone and the game developer.
Please note that we do not provide support for games.
For torrent-related issues use here, or join us on !
, . Downloading issues? Look here.​
 

jasad

Well-Known Member
Dec 14, 2021
1,435
1,128
348
  • Yay, update!
Reactions: BlindPyrate

fromplutoguy

Newbie
Game Developer
Aug 26, 2025
19
48
39
Thanks for all the comments and reactions so far — really appreciate the interest and feedback.

New content in progress:
  • Missy — new character
    • 5 new scenes (3 NSFW)
  • Sara
    • 1 new NSFW solo scene
    • Appears in 2 scenes with Missy
  • New mystery character
    • Intro scene (identity undisclosed)
  • Devil / Hotel
    • 1 new lore-focused scene
Scene-based progression, branching choices, no free roam.

Writing is finished. Renders are in progress.
Estimated playtime after this update: ~1 hour.

New tags added: Exhibitionism, Voyeurism, Footjob, Sex Toys, Vaginal Sex

More details in the devlog:
 

Kalsan

Member
Mar 19, 2020
418
2,760
356
Could you tell us a little more about the future tags of both this and your other project? I saw that you said you wanted to update the tags with each update but there are some tags that most people (me included) would like to know if they will be present (or not) before investing into the game and avoid being disappointed one way or another later.

So are this games harem games (you end up with all the girls in the end) or will they have other any type of NTR, cucking, sharing or swinging or anything like that?
 

fromplutoguy

Newbie
Game Developer
Aug 26, 2025
19
48
39
Could you tell us a little more about the future tags of both this and your other project? I saw that you said you wanted to update the tags with each update but there are some tags that most people (me included) would like to know if they will be present (or not) before investing into the game and avoid being disappointed one way or another later.

So are this games harem games (you end up with all the girls in the end) or will they have other any type of NTR, cucking, sharing or swinging or anything like that?
Fair question. The two projects are a bit different.
Stormbound Hotel is clearly harem-focused, and if anything like sharing or swinging appears, it would only be there and always as an optional, player-chosen path.
Hard Choice is more grounded and choice-driven — you can be involved with multiple girls for most of the game, but there’s no sharing/swinging there and the final choice happens near the end.
No forced NTR or cuck content planned in either project.
 
  • Like
Reactions: jotboy and Santoly

Etres44

Newbie
Dec 14, 2023
27
16
132
Le jeu plante systématiquement lorsque j'essaie de sauvegarder ou d'accéder aux paramètres.

I'm sorry, but an uncaught exception occurred.

While running game code:
File "game/screens.rpy", line 563, in execute
screen save():
File "game/screens.rpy", line 563, in execute
screen save():
File "game/screens.rpy", line 567, in execute
use file_slots(_("Save"))
File "game/screens.rpy", line 567, in <module>
use file_slots(_("Save"))
~^^^^^^^^
TypeError: 'bool' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "game/screenplay/sara/scene0.rpy", line 180, in script
call screen lobby_screen
TypeError: 'bool' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "game/screenplay/sara/scene0.rpy", line 180, in script
call screen lobby_screen
File "game/screenplay/sara/scene0.rpy", line 180, in script
call screen lobby_screen
TypeError: 'bool' object is not callable

-- Full Traceback ------------------------------------------------------------

Traceback (most recent call last):
File "renpy/common/00gamemenu.rpy", line 174, in script
$ ui.interact()
File "renpy/ast.py", line 1187, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/python.py", line 1273, in py_exec_bytecode
exec(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/common/00gamemenu.rpy", line 174, in <module>
$ ui.interact()
~~~~~~~~~~~^^
File "renpy/ui.py", line 304, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/core.py", line 2117, in interact
repeat, rv = self.interact_core(
~~~~~~~~~~~~~~~~~~^
preloads=preloads,
^^^^^^^^^^^^^^^^^^
...<4 lines>...
**kwargs,
^^^^^^^^^
)
^
File "renpy/display/core.py", line 2655, in interact_core
root_widget.visit_all(lambda d: d.per_interact())
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/displayable.py", line 457, in visit_all
d.visit_all(callback, seen)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "renpy/display/displayable.py", line 457, in visit_all
d.visit_all(callback, seen)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "renpy/display/displayable.py", line 457, in visit_all
d.visit_all(callback, seen)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
[Previous line repeated 1 more time]
File "renpy/display/screen.py", line 503, in visit_all
callback(self)
~~~~~~~~^^^^^^
File "renpy/display/core.py", line 2655, in <lambda>
root_widget.visit_all(lambda d: d.per_interact())
~~~~~~~~~~~~~~^^
File "renpy/display/screen.py", line 514, in per_interact
self.update()
~~~~~~~~~~~^^
File "renpy/display/screen.py", line 715, in update
self.screen.function(**self.scope)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "game/screens.rpy", line 563, in execute
screen save():
File "game/screens.rpy", line 563, in execute
screen save():
File "game/screens.rpy", line 567, in execute
use file_slots(_("Save"))
File "renpy/parameter.py", line 513, in evaluate
value = renpy.python.py_eval(v, locals=scope)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "renpy/python.py", line 1305, in py_eval
return py_eval_bytecode(code, globals, locals)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/python.py", line 1298, in py_eval_bytecode
return eval(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "game/screens.rpy", line 567, in <module>
use file_slots(_("Save"))
~^^^^^^^^
TypeError: 'bool' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "game/screenplay/sara/scene0.rpy", line 180, in script
call screen lobby_screen
File "renpy/ast.py", line 2241, in execute
self.call("execute")
~~~~~~~~~^^^^^^^^^^^
File "renpy/ast.py", line 2195, in call
return renpy.statements.call(method, parsed, *args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/statements.py", line 381, in call
return method(parsed, *args, **kwargs)
~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/common/000statements.rpy", line 695, in execute_call_screen
store._return = renpy.call_screen(name, *args, **kwargs)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/exports/statementexports.py", line 348, in call_screen
rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/ui.py", line 304, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/core.py", line 2117, in interact
repeat, rv = self.interact_core(
~~~~~~~~~~~~~~~~~~^
preloads=preloads,
^^^^^^^^^^^^^^^^^^
...<4 lines>...
**kwargs,
^^^^^^^^^
)
^
File "renpy/display/core.py", line 3203, in interact_core
rv = root_widget.event(ev, x, y, 0)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "renpy/display/layout.py", line 1281, in event
rv = i.event(ev, x - xo, y - yo, cst)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/layout.py", line 1281, in event
rv = i.event(ev, x - xo, y - yo, cst)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/layout.py", line 1281, in event
rv = i.event(ev, x - xo, y - yo, cst)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/screen.py", line 805, in event
rv = self.child.event(ev, x, y, st)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "renpy/display/layout.py", line 1281, in event
rv = i.event(ev, x - xo, y - yo, cst)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/layout.py", line 1281, in event
rv = i.event(ev, x - xo, y - yo, cst)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/layout.py", line 1281, in event
rv = i.event(ev, x - xo, y - yo, cst)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
[Previous line repeated 1 more time]
File "renpy/display/behavior.py", line 1185, in event
return handle_click(self.clicked)
~~~~~~~~~~~~^^^^^^^^^^^^^^
File "renpy/display/behavior.py", line 1107, in handle_click
rv = run(action)
~~~^^^^^^^^
File "renpy/display/behavior.py", line 411, in run
return action(*args, **kwargs)
~~~~~~^^^^^^^^^^^^^^^^^
File "renpy/common/00action_menu.rpy", line 120, in __call__
renpy.call_in_new_context("_game_menu", *self.args, _game_menu_screen=screen, **self.kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/game.py", line 372, in call_in_new_context
return renpy.execution.run_context(False)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
File "renpy/execution.py", line 1027, in run_context
context.run()
~~~~~~~~~~~^^
File "renpy/common/00gamemenu.rpy", line 174, in script
$ ui.interact()
File "renpy/common/00gamemenu.rpy", line 174, in script
$ ui.interact()
File "renpy/display/error.py", line 135, in report_exception
renpy.game.invoke_in_new_context(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
call_exception_screen,
^^^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
ignore_action=ignore_action,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "renpy/game.py", line 301, in invoke_in_new_context
return callable(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
File "renpy/display/error.py", line 44, in call_exception_screen
return renpy.ui.interact(mouse="screen", type="screen", suppress_overlay=True, suppress_underlay=True)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/ui.py", line 304, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/core.py", line 2117, in interact
repeat, rv = self.interact_core(
~~~~~~~~~~~~~~~~~~^
preloads=preloads,
^^^^^^^^^^^^^^^^^^
...<4 lines>...
**kwargs,
^^^^^^^^^
)
^
File "renpy/display/core.py", line 2655, in interact_core
root_widget.visit_all(lambda d: d.per_interact())
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/display/displayable.py", line 457, in visit_all
d.visit_all(callback, seen)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "renpy/display/displayable.py", line 457, in visit_all
d.visit_all(callback, seen)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "renpy/display/displayable.py", line 457, in visit_all
d.visit_all(callback, seen)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "renpy/display/screen.py", line 503, in visit_all
callback(self)
~~~~~~~~^^^^^^
File "renpy/display/core.py", line 2655, in <lambda>
root_widget.visit_all(lambda d: d.per_interact())
~~~~~~~~~~~~~~^^
File "renpy/display/screen.py", line 514, in per_interact
self.update()
~~~~~~~~~~~^^
File "renpy/display/screen.py", line 715, in update
self.screen.function(**self.scope)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
File "renpy/common/_errorhandling.rpym", line 783, in execute
screen _exception:
File "renpy/common/_errorhandling.rpym", line 783, in execute
screen _exception:
File "renpy/common/_errorhandling.rpym", line 792, in execute
frame:
File "renpy/common/_errorhandling.rpym", line 795, in execute
has side "t c b":
File "renpy/common/_errorhandling.rpym", line 798, in execute
side "c r":
File "renpy/common/_errorhandling.rpym", line 800, in execute
label _("An exception has occurred.") text_size gui._scale(40)
File "renpy/python.py", line 1305, in py_eval
return py_eval_bytecode(code, globals, locals)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/python.py", line 1298, in py_eval_bytecode
return eval(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/common/_errorhandling.rpym", line 800, in <module>
label _("An exception has occurred.") text_size gui._scale(40)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'bool' object is not callable

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "renpy/bootstrap.py", line 401, in bootstrap
renpy.main.main()
~~~~~~~~~~~~~~~^^
Fichier « renpy/main.py », ligne 591, dans main
exécuter (redémarrage)
~~~^^^^^^^^^
Fichier « renpy/main.py », ligne 137, dans run
renpy.execution.run_context(True)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
Fichier « renpy/execution.py », ligne 1027, dans run_context
contexte.run()
~~~~~~~~~~~^^
Fichier « game/screenplay/sara/scene0.rpy », ligne 180, dans script
écran d'appel lobby_screen
Fichier « game/screenplay/sara/scene0.rpy », ligne 180, dans script
écran d'appel lobby_screen
Fichier « renpy/display/error.py », ligne 135, dans report_exception
renpy.game.invoke_in_new_context(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
écran_exception_appel,
^^^^^^^^^^^^^^^^^^^^^^
...<4 lignes>...
ignore_action=ignore_action,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
Fichier « renpy/game.py », ligne 301, dans invoke_in_new_context
renvoie une fonction appelable(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
Fichier « renpy/display/error.py », ligne 44, dans call_exception_screen
renvoie renpy.ui.interact(mouse="screen", type="screen", suppress_overlay=True, suppress_underlay=True)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fichier « renpy/ui.py », ligne 304, dans interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fichier « renpy/display/core.py », ligne 2117, dans interact
répéter, rv = self.interact_core(
~~~~~~~~~~~~~~~~~~^
préchargements=préchargements,
^^^^^^^^^^^^^^^^^^
...<4 lignes>...
**kwargs,
^^^^^^^^^
)
^
Fichier « renpy/display/core.py », ligne 2655, dans interact_core
root_widget.visit_all(lambda d: d.per_interact())
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fichier « renpy/display/displayable.py », ligne 457, dans visit_all
d.visit_all(callback, vu)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
Fichier « renpy/display/displayable.py », ligne 457, dans visit_all
d.visit_all(callback, vu)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
Fichier « renpy/display/displayable.py », ligne 457, dans visit_all
d.visit_all(callback, vu)
~~~~~~~~~~~^^^^^^^^^^^^^^^^
Fichier « renpy/display/screen.py », ligne 503, dans visit_all
rappel(soi-même)
~~~~~~~~^^^^^^
Fichier "renpy/display/core.py", ligne 2655, dans <lambda>
root_widget.visit_all(lambda d: d.per_interact())
~~~~~~~~~~~~~~^^
Fichier « renpy/display/screen.py », ligne 514, dans per_interact
self.update()
~~~~~~~~~~~^^
Fichier « renpy/display/screen.py », ligne 715, dans la mise à jour
self.screen.function(**self.scope)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
Fichier « renpy/common/_errorhandling.rpym », ligne 783, dans execute
exception d'écran :
Fichier « renpy/common/_errorhandling.rpym », ligne 783, dans execute
exception d'écran :
Fichier « renpy/common/_errorhandling.rpym », ligne 792, dans execute
cadre:
Fichier « renpy/common/_errorhandling.rpym », ligne 795, dans execute
a côté "tc b" :
Fichier « renpy/common/_errorhandling.rpym », ligne 798, dans execute
côté "c r" :
Fichier « renpy/common/_errorhandling.rpym », ligne 800, dans execute
label _("Une exception s'est produite.") text_size gui._scale(40)
Fichier « renpy/python.py », ligne 1305, dans py_eval
renvoie py_eval_bytecode(code, globals, locals)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
Fichier « renpy/python.py », ligne 1298, dans py_eval_bytecode
renvoie eval(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fichier "renpy/common/_errorhandling.rpym", ligne 800, dans <module>
label _("Une exception s'est produite.") text_size gui._scale(40)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError : l’objet « bool » n’est pas appelable

Windows-11-10.0.26200-SP0 AMD64
Ren'Py 8.5.0.25111603
Hôtel Stormbound 0.2
Ven. 9 janv. 2026 22:06:56
 
1.00 star(s) 1 Vote