Compare commits

...

21 Commits

Author SHA1 Message Date
Tom Rothamel 56aa271554 web: Check for progressive downloads once per frame.
This is up from once per interaction, and only when Ren'Py is idle.
This allows progressive downloads to be loaded in the middle of
an interaction.

Fixes #3125.
2021-11-16 22:18:55 -05:00
Tom Rothamel cda38a4aca live2d: Always fade when switching from one motion to another. 2021-11-16 22:18:55 -05:00
Tom Rothamel 509e0ed2f2 Remove a debug print. 2021-11-16 22:18:55 -05:00
Tom Rothamel 116ccc9c3c live2d: Remove debug print. 2021-11-16 22:18:55 -05:00
Tom Rothamel 0ff3b243c5 live2d: Do not prevent seamless motions from looping. 2021-11-16 22:18:55 -05:00
Tom Rothamel 92ca5e9add Update the changelong. 2021-11-16 22:18:55 -05:00
Tom Rothamel 9651cc2ed8 live2d: Move to using saturation arithmetic for models.
This is an attempt to better implement the live2d fading semantics,
found at:

https://docs.live2d.com/cubism-editor-manual/about-fade/?locale=en_us

The idea is that if both motions have a parameter at the same
value, it shouldn't change, so that if we have .75 of A and .25
from B, the result should be .25 + .75 rather than
.75 * (1 - .25) + .25, which has the value of .8125.
2021-11-16 22:18:55 -05:00
Tom Rothamel 2065f82f89 live2d: When a motion is fading out, do not loop it or replace it with the next motion. 2021-11-16 22:18:55 -05:00
Tom Rothamel 15b23d8ea0 Fix typo.
Fixes #3127.
2021-11-16 22:18:55 -05:00
Tom Rothamel e8e206dbba Store the layer_at/camera lists with layers.
And reuse them when creating the layer in the old store. This
allows the old layer_at lists to be used in a layer's _in_current_store
method.

Fixes #3126.
2021-11-16 22:18:55 -05:00
Tom Rothamel 39350f4778 gl2: Use GL_LEQUALS rather than GL_LESS when gl_depth is true.
This reduces astonishment by making the behavior equal to what
Ren'Py would do normally.

Per p547953.

Not compatted, because gl_depth is probably fairly new when it
comes to use, and it's probably best to treat the behavior up
to now as undefined.
2021-11-16 22:18:55 -05:00
Tom Rothamel 72f3798741 Remove debug print. 2021-11-16 22:18:55 -05:00
Tom Rothamel 98e06eaba9 sl2: Reuse the scope object in use w/o parameters.
This ensures the object keeps the same identity, which means
that use without parameters works with the changes to uses_scope
in 43403e787e .

Fixes #195.
2021-11-09 23:11:30 -05:00
Tom Rothamel 34dbd3f5f8 Changelog more of the things. 2021-11-08 20:56:42 -05:00
Tom Rothamel 8011545b88 Update sponsors. 2021-11-08 19:29:05 -05:00
Tom Rothamel ba0ffeb7d0 Lower version to 7.4.11. 2021-11-07 20:43:47 -05:00
Tom Rothamel f32c448d02 Remove the 7.5 changelog. 2021-11-07 20:08:00 -05:00
Tom Rothamel 3c0c1ffb84 Revert "Tweak the priority of compat, so it can better address styles and common."
This reverts commit 0f8610c8af.
2021-11-07 19:55:27 -05:00
Tom Rothamel 5d167a881d Revert "Change the default for style.drag.focus_mask to False."
This reverts commit c9e3ac12bc.
2021-11-07 19:55:13 -05:00
Tom Rothamel 1d3b6ffdf0 Revert "Add config.mouse_focus_clickthrough."
This reverts commit 0192c3bfdb.
2021-11-07 19:54:07 -05:00
Tom Rothamel 5c63d9cee8 Revert "Enable config.mouse_focus_clickthrough in the launcher."
This reverts commit b7e53ccf74.
2021-11-07 19:53:11 -05:00
17 changed files with 311 additions and 294 deletions
-4
View File
@@ -406,13 +406,9 @@ init python:
# Enable the special launcher translation mode.
define config.translate_launcher = True
# Allow clicks that focus the window to be processed.
define config.mouse_focus_clickthrough = True
# Reduce the rate of screen updates.
default preferences.gl_powersave = True
# Disable steam.
python early:
config.enable_steam = False
+2 -2
View File
@@ -81,10 +81,10 @@ official = official and getattr(site, "renpy_build_official", False)
if PY2:
# The tuple giving the version number.
version_tuple = (7, 5, 0, vc_version)
version_tuple = (7, 4, 11, vc_version)
# The name of this version.
version_name = "TBD"
version_name = "Lucky Beckoning Cat"
else:
+2 -5
View File
@@ -19,7 +19,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init -1100 python:
init -1900 python:
# This is called when script_version is set, to immediately
# run code in response to a script_version change.
@@ -225,9 +225,6 @@ init -1100 python:
config.relative_transform_size = False
config.tts_front_to_back = False
if version <= (7, 5, 0):
style.drag.focus_mask = True
# The version of Ren'Py this script is intended for, or
# None if it's intended for the current version.
config.script_version = None
@@ -275,7 +272,7 @@ init -1000 python hide:
except:
pass
init 1100 python hide:
init 1900 python hide:
# This returns true if the script_version is <= the
# script_version supplied. Give it the last script version
+1 -1
View File
@@ -362,7 +362,7 @@ init -1800:
yfill False
style drag:
focus_mask None
focus_mask True
# Out-of-game menu root windows
-3
View File
@@ -1189,9 +1189,6 @@ log_live2d_loading = False
# Should Ren'Py debug prediction?
debug_prediction = False
# Should mouse events that cause a window to gain focus be passed through.
mouse_focus_clickthrough = False
del os
del collections
+21 -22
View File
@@ -1346,20 +1346,27 @@ class SceneLists(renpy.object.Object):
rv.append_scene_list(self.layers[layer])
rv.layer_name = layer
rv._duplicatable = False
rv._layer_at_list = self.layer_at_list[layer]
rv._camera_list = self.camera_list[layer]
return rv
def transform_layer(self, layer, d):
def transform_layer(self, layer, d, layer_at_list=None, camera_list=None):
"""
When `d` is a layer created with make_layer, returns `d` with the
various at_list transformas applied to it.
various at_list transforms applied to it.
"""
if layer_at_list is None:
layer_at_list = self.layer_at_list[layer]
if camera_list is None:
camera_list = self.camera_list[layer]
rv = d
# Layer at list.
time, at_list = self.layer_at_list[layer]
time, at_list = layer_at_list
old_transform = self.layer_transform.get(layer, None)
new_transform = None
@@ -1387,7 +1394,7 @@ class SceneLists(renpy.object.Object):
# Camera list.
time, at_list = self.camera_list[layer]
time, at_list = camera_list
old_transform = self.camera_transform.get(layer, None)
new_transform = None
@@ -2270,9 +2277,6 @@ class Interface(object):
pygame.display.hint("SDL_MOUSE_TOUCH_EVENTS", "0")
pygame.display.hint("SDL_EMSCRIPTEN_ASYNCIFY", "0")
if renpy.config.mouse_focus_clickthrough:
pygame.display.hint("SDL_MOUSE_FOCUS_CLICKTHROUGH", "1")
pygame.display.set_screensaver(renpy.config.allow_screensaver)
# Needed for Ubuntu Unity.
@@ -3401,21 +3405,13 @@ class Interface(object):
self.consider_gc()
step += 1
# Step 2: Load downloaded resources
# Step 2: Push textures to GPU.
elif step == 2:
if renpy.emscripten or os.environ.get('RENPY_SIMULATE_DOWNLOAD', False):
renpy.webloader.process_downloaded_resources()
step += 1
# Step 3: Push textures to GPU.
elif step == 3:
renpy.display.draw.ready_one_texture()
step += 1
# Step 4: Predict more images.
elif step == 4:
# Step 3: Predict more images.
elif step == 3:
if not self.prediction_coroutine:
step += 1
@@ -3436,16 +3432,16 @@ class Interface(object):
if not expensive:
step += 1
# Step 5: Preload images (on emscripten)
elif step == 5:
# Step 4: Preload images (on emscripten)
elif step == 4:
if expensive and renpy.emscripten:
renpy.display.im.cache.preload_thread_pass()
step += 1
# Step 6: Autosave.
elif step == 6:
# Step 5: Autosave.
elif step == 5:
if not self.did_autosave:
renpy.loadsave.autosave()
@@ -3800,6 +3796,9 @@ class Interface(object):
# Check for autoreload.
renpy.loader.check_autoreload()
if renpy.emscripten or os.environ.get('RENPY_SIMULATE_DOWNLOAD', False):
renpy.webloader.process_downloaded_resources()
for i in renpy.config.needs_redraw_callbacks:
if i():
needs_redraw = True
+2 -1
View File
@@ -685,7 +685,8 @@ class MultiBox(Container):
if new_d is not old_d:
changed = True
new_d = renpy.game.context().scene_lists.transform_layer(layer, new_d)
new_d = renpy.game.context().scene_lists.transform_layer(layer, new_d, layer_at_list=old_d._layer_at_list, camera_list=old_d._camera_list)
rv.layers[layer] = new_d
else:
new_d = self.layers[layer]
+2 -5
View File
@@ -449,10 +449,7 @@ cdef class GL2Draw:
if not fullscreen:
renpy.game.preferences.physical_size = self.get_physical_size()
if renpy.mobile:
print("Screen sizes: virtual=%r physical=%r drawable=%r" % (self.virtual_size, self.physical_size, self.drawable_size))
else:
renpy.display.log.write("Screen sizes: virtual=%r physical=%r drawable=%r" % (self.virtual_size, self.physical_size, self.drawable_size))
renpy.display.log.write("Screen sizes: virtual=%r physical=%r drawable=%r" % (self.virtual_size, self.physical_size, self.drawable_size))
if renpy.config.adjust_view_size is not None:
view_width, view_height = renpy.config.adjust_view_size(pwidth, pheight)
@@ -1296,7 +1293,7 @@ cdef class GL2DrawingContext:
if depth:
glClear(GL_DEPTH_BUFFER_BIT)
glEnable(GL_DEPTH_TEST)
glDepthFunc(GL_LESS)
glDepthFunc(GL_LEQUAL)
properties["has_depth"] = True
+27 -4
View File
@@ -706,6 +706,11 @@ class Live2D(renpy.display.core.Displayable):
# Determine the current motion.
motion_st = st
if st_fade is not None:
motion_st = st - st_fade
for m in self.motions:
motion = common.motions.get(m, None)
@@ -715,6 +720,10 @@ class Live2D(renpy.display.core.Displayable):
if motion.duration > st:
break
elif (motion.duration > motion_st) and not common.is_seamless(m):
break
motion_st -= motion.duration
st -= motion.duration
current_index += 1
@@ -722,9 +731,18 @@ class Live2D(renpy.display.core.Displayable):
if motion is None:
return None
if not self.loop:
if (not self.loop) or (not motion.duration):
st = motion.duration
last_frame = True
elif (st_fade is not None) and not common.is_seamless(m):
# This keeps a motion from being restarted after it would have
# been faded out.
motion_start = motion_st - motion_st % motion.duration
if (st - motion_start) > motion.duration:
st = motion.duration
last_frame = True
if motion is None:
return None
@@ -754,7 +772,7 @@ class Live2D(renpy.display.core.Displayable):
if (last_name == current_name) and common.is_seamless(current_name):
do_fade_in = False
if (next_name == current_name) and common.is_seamless(current_name):
if (next_name == current_name) and common.is_seamless(current_name) and (st_fade is None):
do_fade_out = False
# Apply the motion.
@@ -870,14 +888,19 @@ class Live2D(renpy.display.core.Displayable):
model.reset_parameters()
if fade:
old_redraw = state.old.update(common, renpy.display.interface.frame_time - state.old_base_time, st)
t = renpy.display.interface.frame_time - state.new_base_time
else:
old_redraw = None
t = st
new_redraw = self.update(common, t, None)
if fade:
old_redraw = state.old.update(common, renpy.display.interface.frame_time - state.old_base_time, st)
else:
old_redraw = None
model.finish_parameters()
# Apply the expressions.
expression_redraw = self.update_expressions(st)
+25 -7
View File
@@ -119,6 +119,7 @@ class Parameter(object):
self.minimum = minimum
self.maximum = maximum
self.default = default
self.remaining = 1.0
class Part(object):
@@ -126,6 +127,7 @@ class Part(object):
self.index = index
self.name = name
self.default_opacity = default_opacity
self.remaining = 1.0
cdef class Live2DModel:
"""
@@ -263,11 +265,17 @@ cdef class Live2DModel:
csmUpdateModel(self.model)
def reset_parameters(self):
"""
Resets the parameters, and resets the remaining weight to 1.0.
"""
for i in self.parameters.values():
self.parameter_values[i.index] = i.default
self.parameter_values[i.index] = 0.0
i.remaining = 1.0
for i in self.parts.values():
self.part_opacities[i.index] = i.default_opacity
self.part_opacities[i.index] = 0.0
i.remaining = 1.0
def set_part_opacity(self, name, value):
@@ -278,7 +286,8 @@ cdef class Live2DModel:
self.set_part_opacity(i, value)
return
self.part_opacities[part.index] = value
self.part_opacities[part.index] += value * part.remaining
part.remaining = 0.0
def set_parameter(self, name, value, weight=1.0):
parameter = self.parameters.get(name, None)
@@ -288,8 +297,20 @@ cdef class Live2DModel:
self.set_parameter(i, value, weight=weight)
return
weight = min(weight, parameter.remaining)
old = self.parameter_values[parameter.index]
self.parameter_values[parameter.index] = old + weight * (value - old)
self.parameter_values[parameter.index] += weight * value
parameter.remaining -= weight
def finish_parameters(self):
for i in self.parameters.values():
self.parameter_values[i.index] += i.default * i.remaining
i.remaining = 0.0
for i in self.parts.values():
self.part_opacities[i.index] += i.default_opacity * i.remaining
i.remaining = 0.0
def blend_parameter(self, name, blend, value, weight=1.0):
@@ -330,9 +351,6 @@ cdef class Live2DModel:
csmUpdateModel(self.model)
# Render the model.
# w = self.pixel_size.X
# h = self.pixel_size.Y
w = int(zoom * self.pixel_size.X)
h = int(zoom * self.pixel_size.Y)
+8 -2
View File
@@ -791,6 +791,8 @@ class SLDisplayable(SLBlock):
else:
scope = context_scope
if copy_on_change:
if i._scope(scope, False):
cache.constant = None
@@ -1901,7 +1903,9 @@ class SLUse(SLNode):
if args:
raise Exception("Screen {} does not take positional arguments. ({} given)".format(self.target, len(args)))
scope = context.scope.copy()
scope = ctx.old_cache.get("scope", None) or ctx.miss_cache.get("scope", None) or { }
scope.clear()
scope.update(context.scope)
scope.update(kwargs)
scope["_scope"] = scope
@@ -2153,7 +2157,9 @@ class SLCustomUse(SLNode):
if args:
raise Exception("Screen {} does not take positional arguments. ({} given)".format(self.target, len(args)))
scope = context.scope.copy()
scope = ctx.old_cache.get("scope", None) or ctx.miss_cache.get("scope", None) or { }
scope.clear()
scope.update(context.scope)
scope.update(kwargs)
scope["_scope"] = scope
+2 -7
View File
@@ -202,7 +202,8 @@ def enqueue(relpath, rtype, data):
def process_downloaded_resources():
global queue, to_unlink
reload_needed = False
if not queue:
return
with queue_lock:
@@ -230,7 +231,6 @@ def process_downloaded_resources():
# mark for deletion
fullpath = os.path.join(renpy.config.gamedir,rr.relpath)
to_unlink[fullpath] = time.time()
reload_needed = True
elif rr.rtype == 'music':
# - just wait for the 0.5s placeholder to finish,
@@ -250,11 +250,6 @@ def process_downloaded_resources():
finally:
queue = postponed + todo
if reload_needed:
# Refresh the screen and re-load images flushed from cache
# Note: done at next Ren'Py interaction (prediction reset)
renpy.display.render.free_memory()
# Free files from memory once they are loaded
# Due to search-path dups and derived images (including image-based animations)
# files can't be removed right after actual load
+1 -1
View File
@@ -1262,6 +1262,6 @@ in the parent. This is because a displayable may have only one position, and
a position that is actively set takes precedence. These properties may be set in
multiple ways - for example, :tpref:`xalign` sets xpos and xanchor.
Finally, when a ``show`` statement does not include and ``at`` clause, the
Finally, when a ``show`` statement does not include an ``at`` clause, the
same displayables are used, so no inheritence is necessary. To prevent inheritance,
show and then hide the displayable.
+29 -26
View File
@@ -2,40 +2,43 @@
Changelog (Ren'Py 7.x-)
=======================
.. _renpy-7.5.0:
7.5
===
ChromeOS
--------
When running as an Android application on a ChromeOS device, the "chromeos"
variant will be selected.
Features
--------
The new :var:`config.mouse_focus_clickthrough` variable determines if clicks that
cause the game window to be focused will be processed normally.
The launcher now runs with :var:`config.mouse_focus_clickthrough` true, which
means that it will only take a single click to launch the game.
The :propref:`focus_mask` style property now defaults to None for drag displayables.
This improves performance, but means that the displayable can be dragged by
transparent pixels.
.. _renpy-7.4.11:
7.4.11
======
Fixes
-----
The web browser now checks for progressively downloaded images once per
frame, allowing images to be loaded into the middle of an animation.
Live2D now uses saturation arithmetic to combine motion fadeins and fadeouts,
such that if the fadein contributes 80% of a parameter value, and the
fadeout contributes 20% of the value, 100% of the value comes from
the two motions. (Previously, the fadein and fadeout were applied
independently, such that together, the fadein and fadeout would
contribute 84% of the value, with the remaining 16% taken from
the default.)
When fading from one sequence of Live2D motions to another, the original
sequence ends when a motion fades out.
When preserving screens in the old state for a transition, the later_at_list
and camera lists are taken from the old state, preventing unexpected changes.
The :tpref:`gl_depth` property now causes Ren'Py to use GL_LEQUALS,
which more closely matches Ren'Py's semantics.
The 4-component constructor for matrices has been fixed.
Ren'Py now cleans out the android build directories when producing a Android
App Bundle (AAB) file, preventing problems that might be caused when packaging
multiple games, or a single game where files are deleted.
Live2d now properly handles seamless animation when the same motion is repeated
in a displayable. (For example, ``show eileen m1 m1 m2`` where ``m1`` is seamless.)
Mouse motion is now tracked on Chrome OS devices. This prevents the mouse cursor
from being hidden between clicks.
-5
View File
@@ -1360,11 +1360,6 @@ Rarely or Internally Used
name of a label to use as a replacement for the missing label, or None
to cause Ren'Py to raise an exception.
.. var:: config.mouse_focus_clickthrough = False
If true, clicks that cause a window to be focused will be processed
normally. If false, such clicks will be ignored.
.. var:: config.mouse_hide_time = 30
The mouse is hidden after this number of seconds has elapsed
-14
View File
@@ -13,20 +13,6 @@ Incompatible changes to the GUI are documented at :ref:`gui-changes`, as
such changes only take effect when the GUI is regenerated.
7.5.0
-----
The :propref:`focus_mask` style property now defaults to None for drag displayables.
This improves performance, but means that the displayable can be dragged by
transparent pixels. To revert this, the focus_mask property can be set to True
for individual drags, or globally with::
style drag:
focus_mask True
Both options reduce performance.
.. _incompatible-7.4.9:
7.4.9
+189 -185
View File
@@ -1,29 +1,29 @@
<ul class='sponsors'>
<li> 3uliusG33zer (7.4.37.4.10)
<li> 3uliusG33zer (7.4.37.4.11)
<li> __skwrl__ (6.99.14.37.3.0)
<li> Adam Wright (7.47.4.8)
<li> Adam Wright (7.4.97.4.10)
<li> Adam Wright (7.4.97.4.11)
<li> Adia Alderson (6.99.137.1.2)
<li> Aegis (7.4)
<li> Alec (7.4.37.4.5)
<li> Alec H (7.4.97.4.10)
<li> Alec H (7.4.97.4.11)
<li> Aleema (6.99.137.4.3)
<li> <a href="http://alexdodge.net/" rel="nofollow">Alex Dodge</a> (6.99.147.3.0)
<li> <a href="https://rabidb.com/" rel="nofollow">AlexSSZ</a> (6.99.137.4)
<li> <a href="https://alic-szecsei.com" rel="nofollow">Alic Szecsei</a> (6.99.14.37.4.10)
<li> Alicia (7.1, 7.27.4.10)
<li> <a href="https://alic-szecsei.com" rel="nofollow">Alic Szecsei</a> (6.99.14.37.4.11)
<li> Alicia (7.1, 7.27.4.11)
<li> Almost Human (7.27.3.0)
<li> Almost Human (7.3.07.4.10)
<li> Almost Human (7.3.07.4.11)
<li> Alward Sciröck (7.4)
<li> Andrealphus Games (7.4)
<li> <a href="https://andrealphus.itch.io/leap-of-love-safe-edition" rel="nofollow">Andrealphus Games</a> (7.47.4.10)
<li> <a href="https://andrealphus.itch.io/leap-of-love-safe-edition" rel="nofollow">Andrealphus Games</a> (7.47.4.11)
<li> Andrew (7.47.4.2)
<li> Andrew Paris (7.4)
<li> Andurin (7.1.27.4)
<li> Anne Camlin (7.07.4.10)
<li> Anne Camlin (7.07.4.11)
<li> aphrodisia (7.3.37.4.9)
<li> <a href="https://lemmasoft.renai.us/forums/viewtopic.php?f=51&t=34131" rel="nofollow">AR09FQF-AQ09FRF</a> (6.99.14.17.0)
<li> Ariane Barnes (7.3.07.3.3, 7.4.17.4.10)
<li> Ariane Barnes (7.3.07.3.3, 7.4.17.4.11)
<li> Asatiir (6.99.137.0)
<li> Ashley (7.3.07.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/ASLPro3D" rel="nofollow">ASLPro3D</a> (7.07.3.0)
@@ -33,68 +33,68 @@
<li> Barry B (7.3.3)
<li> Belfort and Bastion (6.99.137.1)
<li> <a href="https://www.renpy.org/agegate?url=https://store.steampowered.com/dev/Belgerum" rel="nofollow">Belgerum Games</a> ()
<li> BigMan03 (7.4.67.4.10)
<li> BigMan03 (7.4.67.4.11)
<li> Biotikos Development (6.99.137.4)
<li> Bob (6.99.137.0)
<li> <a href="https://bobcgames.itch.io" rel="nofollow">Bob Conway</a> (6.99.14.17.4)
<li> Bob Reus (7.17.4)
<li> bob_xxii (7.27.4.10)
<li> Bogdan (7.4.17.4.10)
<li> Booom313's tinker corner (6.99.147.4.10)
<li> Boreas Bear (6.99.137.4.10)
<li> bob_xxii (7.27.4.11)
<li> Bogdan (7.4.17.4.11)
<li> Booom313's tinker corner (6.99.147.4.11)
<li> Boreas Bear (6.99.137.4.11)
<li> <a href="http://boyslaughplus.moe" rel="nofollow">Boys Laugh +</a> (6.99.137.4)
<li> Brad (7.47.4.3)
<li> <a href="https://github.com/EchoFrost" rel="nofollow">Brad Whitesell (EchoFrost)</a> (6.99.14.27.2, 7.47.4.10)
<li> <a href="https://github.com/EchoFrost" rel="nofollow">Brad Whitesell (EchoFrost)</a> (6.99.14.27.2, 7.47.4.11)
<li> Brett Douglas (6.99.146.99.14.3)
<li> <a href="https://www.renpy.org/agegate?url=https://www.brunimultimedia.com" rel="nofollow">Bruni Multimedia</a> (6.99.147.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.brunimultimedia.com" rel="nofollow">Bruni Multimedia</a> (6.99.147.4.11)
<li> <a href="http://www.bura.cl" rel="nofollow">BURA</a> (6.99.13)
<li> c7v0tnrw7a51 (7.4.67.4.10)
<li> Cameron Woodard (6.99.14.37.4.10)
<li> c7v0tnrw7a51 (7.4.67.4.11)
<li> Cameron Woodard (6.99.14.37.4.11)
<li> Cara Hillstock (6.99.137.3.3)
<li> Cara Hillstock (7.3.37.4)
<li> <a href="https://www.catmpro.com/" rel="nofollow">CatMoun-P</a> (7.3.07.3.3)
<li> <a href="https://www.celebrityhunter.com.br" rel="nofollow">Celebrity Hunter</a> (7.17.4.5)
<li> Charlene Gilbert (6.99.137.4.10)
<li> Charlene Gilbert (6.99.137.4.11)
<li> <a href="http://charliethegoldfish.com" rel="nofollow">Charlie Francis Cassidy</a> (6.99.137.3.3)
<li> Chekhov's Ghost (7.17.2)
<li> Cherry Kiss Games (6.99.14.17.4.10)
<li> Cherry Kiss Games (6.99.14.17.4.11)
<li> Chris (7.4.37.4.5)
<li> Christopher Mahon (7.47.4.10)
<li> Christopher Mahon (7.47.4.11)
<li> Christopher S. Ma (7.3.0)
<li> Chroniton (7.4.17.4.10)
<li> Chrysoula (6.99.137.4.10)
<li> Chroniton (7.4.17.4.11)
<li> Chrysoula (6.99.137.4.11)
<li> <a href="https://cloverfirefly.itch.io" rel="nofollow">cloverfirefly</a> (6.99.137.4)
<li> Clyde Duensing III (7.3.07.3.3)
<li> Clyde Duensing III (7.3.37.4.10)
<li> CobaltCore (7.1.17.4.10)
<li> Clyde Duensing III (7.3.37.4.11)
<li> CobaltCore (7.1.17.4.11)
<li> CobraPL (7.17.4.7)
<li> <a href="https://store.steampowered.com/app/1159660/Moe_Era/" rel="nofollow">Comfy Company (Moe Era)</a> (7.4)
<li> <a href="https://www.renpy.org/agegate?url=https://obscurasoft.com/" rel="nofollow">Coming Out On Top</a> (6.99.137.4)
<li> <a href="http://www.computerart.club/" rel="nofollow">computerart.club</a> (6.99.147.4)
<li> Cookie NomNom (7.1.17.4)
<li> Crazy Cactus (6.99.14.37.4.10)
<li> <a href="https://www.renpy.org/agegate?url=http://cricketbat.me" rel="nofollow">cricketbat_</a> (7.07.4.10)
<li> Crazy Cactus (6.99.14.37.4.11)
<li> <a href="https://www.renpy.org/agegate?url=http://cricketbat.me" rel="nofollow">cricketbat_</a> (7.07.4.11)
<li> <a href="http://cultofape.com" rel="nofollow">CultOfApe</a> (6.99.147.0)
<li> Culture4Jam (6.99.137.4)
<li> <a href="https://github.com/l30nard0s0n" rel="nofollow">D. Zubitashvili</a> (7.47.4.10)
<li> Daiko Fextar (7.4.57.4.10)
<li> Dan Gretton (7.3.07.4.10)
<li> <a href="https://github.com/l30nard0s0n" rel="nofollow">D. Zubitashvili</a> (7.47.4.11)
<li> Daiko Fextar (7.4.57.4.11)
<li> Dan Gretton (7.3.07.4.11)
<li> Dan Lazar (7.4)
<li> Dana Jackson (7.4.77.4.10)
<li> Dana Jackson (7.4.77.4.11)
<li> Daniel Burns (7.17.2)
<li> <a href="https://www.renpy.org/agegate?url=http://www.darkministry.net" rel="nofollow">Dark Ministry</a> (7.27.3.0)
<li> <a href="http://dark-aii.net" rel="nofollow">Dark-Aii</a> (6.99.14.16.99.14.3)
<li> DarkDrake1371 (7.3.07.3.3)
<li> <a href="http://www.darksirengames.com" rel="nofollow">DarkSirenGames</a> (6.99.137.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://darktoz.com/" rel="nofollow">Darktoz</a> (7.4.57.4.10)
<li> <a href="http://www.darksirengames.com" rel="nofollow">DarkSirenGames</a> (6.99.137.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://darktoz.com/" rel="nofollow">Darktoz</a> (7.4.57.4.11)
<li> Darryl Taylor (7.07.4)
<li> Dave Pickett (7.4.97.4.10)
<li> Dave Pickett (7.4.97.4.11)
<li> David Koster (6.99.147.4)
<li> David Maiman - Chaos Cute Soft (7.4)
<li> David Yingling (6.99.14.17.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://dizzy.works" rel="nofollow">DavieZwei</a> (7.4.77.4.10)
<li> David Yingling (6.99.14.17.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://dizzy.works" rel="nofollow">DavieZwei</a> (7.4.77.4.11)
<li> <a href="https://twitter.com/DEADRKGK" rel="nofollow">DEADRKGK</a> (7.4)
<li> DecentMonkey (7.4.57.4.10)
<li> DecentMonkey (7.4.57.4.11)
<li> Decopauge123 (7.4)
<li> Dee (7.17.4.7)
<li> Denny Cheng (6.99.14.27.3.3)
@@ -103,274 +103,278 @@
<li> DinoMan21779 (7.3.37.4.5)
<li> DJ_Light (7.3.37.4)
<li> Donald (7.47.4.9)
<li> Dosya (7.4.97.4.10)
<li> Dosya (7.4.97.4.11)
<li> Drake Wells (7.3.07.4)
<li> Drifty (7.4.10)
<li> <a href="http://coriginate.com" rel="nofollow">Ds110</a> (6.99.137.4.10)
<li> DuoDevelopers (7.1.17.4.10)
<li> Duprès Eric (7.47.4.10)
<li> DV Enterprises Development (7.3.37.4.10)
<li> Drifty (7.4.107.4.11)
<li> <a href="http://coriginate.com" rel="nofollow">Ds110</a> (6.99.137.4.11)
<li> DuoDevelopers (7.1.17.4.11)
<li> Duprès Eric (7.47.4.11)
<li> DV Enterprises Development (7.3.37.4.11)
<li> E. William Brown (6.99.137.3.0)
<li> <a href="https://www.eccentric-gaming.com/" rel="nofollow">Eccentric Satyr</a> (7.47.4.5)
<li> Eileen K (7.3.07.4.10)
<li> <a href="https://www.youtube.com/c/ElaineDoesCoding" rel="nofollow">ElaineDoesCoding</a> (7.07.4.10)
<li> Eli Berg-Maas (7.4.77.4.10)
<li> Eileen K (7.3.07.4.11)
<li> <a href="https://www.youtube.com/c/ElaineDoesCoding" rel="nofollow">ElaineDoesCoding</a> (7.07.4.11)
<li> Eli Berg-Maas (7.4.77.4.11)
<li> Elun GAMES (7.4)
<li> eric chi hung ng (7.07.3.0)
<li> Erik Moeller (7.4.37.4.10)
<li> Erik Moeller (7.4.37.4.11)
<li> Eris Discordia (7.4.3)
<li> Ertal Games (7.1.17.3.3)
<li> <a href="https://www.patreon.com/henissart" rel="nofollow">Estate : Dominate</a> (7.47.4.10)
<li> Euan 'Xolf' Robertson (6.99.137.4.10)
<li> <a href="https://www.patreon.com/henissart" rel="nofollow">Estate : Dominate</a> (7.47.4.11)
<li> Euan 'Xolf' Robertson (6.99.137.4.11)
<li> Eve Hallows (6.99.136.99.14)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/exiscoming" rel="nofollow">Exiscoming</a> (6.99.147.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/exiscoming" rel="nofollow">Exiscoming</a> (6.99.147.4.11)
<li> Eyzi (7.07.3.0, 7.4)
<li> FightingFox Studio (7.47.4.6)
<li> FlorgaRec (7.4)
<li> Fluffy (7.4.17.4.10)
<li> Fulcrum-E (6.99.147.4.10)
<li> Fluffy (7.4.17.4.11)
<li> Fulcrum-E (6.99.147.4.11)
<li> Fuseblower (7.07.2)
<li> gamefang (7.4.17.4.10)
<li> <a href="https://twitter.com/Patch_Games" rel="nofollow">GB Patch Games</a> (7.47.4.10)
<li> gamefang (7.4.17.4.11)
<li> <a href="https://twitter.com/Patch_Games" rel="nofollow">GB Patch Games</a> (7.47.4.11)
<li> George (7.17.4)
<li> <a href="http://www.gtbono.com" rel="nofollow">Giovanni Tempobono</a> (7.17.1.2)
<li> Glib Gentleman (6.99.147.4, 7.4.67.4.10)
<li> gogu (7.47.4.10)
<li> <a href="https://goldengamebarn.com/" rel="nofollow">Golden Game Barn</a> (6.99.137.4.10)
<li> <a href="https://twitter.com/goodtalesvn" rel="nofollow">Good Tales</a> (7.17.4.10)
<li> Great Chicken Studio (6.99.147.4.10)
<li> Glib Gentleman (6.99.147.4, 7.4.67.4.11)
<li> gogu (7.47.4.11)
<li> <a href="https://goldengamebarn.com/" rel="nofollow">Golden Game Barn</a> (6.99.137.4.11)
<li> <a href="https://twitter.com/goodtalesvn" rel="nofollow">Good Tales</a> (7.17.4.11)
<li> Great Chicken Studio (6.99.147.4.11)
<li> Gunso (6.99.137.2)
<li> HAG Productions (7.1.17.4)
<li> <a href="http://www.hanakogames.com/" rel="nofollow">Hanako Games</a> (7.3.37.4.10)
<li> <a href="http://hanb.jp" rel="nofollow">HanbitGaram (MOEWORK Entertainment)</a> (7.17.4.10)
<li> <a href="http://www.hanakogames.com/" rel="nofollow">Hanako Games</a> (7.3.37.4.11)
<li> <a href="http://hanb.jp" rel="nofollow">HanbitGaram (MOEWORK Entertainment)</a> (7.17.4.11)
<li> Happimochi (6.99.136.99.14)
<li> Hasse Svensson (7.4)
<li> Hermit Jones (HJ) (7.3.37.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://komisari.itch.io/heros-harem-guild" rel="nofollow">Hero's Harem Guild</a> (7.47.4.10)
<li> HoarRaven (7.4.10)
<li> HopesGaming (7.1.17.4.10)
<li> Hyperion Thunder (7.47.4.10)
<li> Hermit Jones (HJ) (7.3.37.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://komisari.itch.io/heros-harem-guild" rel="nofollow">Hero's Harem Guild</a> (7.47.4.11)
<li> HoarRaven (7.4.107.4.11)
<li> HopesGaming (7.1.17.4.11)
<li> Hyperion Thunder (7.47.4.11)
<li> <a href="https://ijemin.com" rel="nofollow">I_Jemin</a> (6.99.137.0)
<li> Ianvs (7.3.37.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.teamsadcrab.com" rel="nofollow">Innocent Witches</a> (7.17.4.10)
<li> Ianvs (7.3.37.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://www.teamsadcrab.com" rel="nofollow">Innocent Witches</a> (7.17.4.11)
<li> <a href="https://www.irinakuksova.ie" rel="nofollow">Irina Kuksova</a> (7.3.07.4)
<li> <a href="https://irredeemable.net/" rel="nofollow">Irredeemable Games</a> (6.99.147.4)
<li> ITRoy (7.4.37.4.10)
<li> J. C. Holder (6.99.137.4.10)
<li> J. Webb (7.4.57.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://m.twitch.tv/jackofallart" rel="nofollow">Jack of All Art</a> (7.4.57.4.10)
<li> ITRoy (7.4.37.4.11)
<li> J. C. Holder (6.99.137.4.11)
<li> J. Webb (7.4.57.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://m.twitch.tv/jackofallart" rel="nofollow">Jack of All Art</a> (7.4.57.4.11)
<li> Jacob Munro (7.4)
<li> Jacob Sporrong (6.99.137.4.10)
<li> James Gretchen (7.4.10)
<li> Jacob Sporrong (6.99.137.4.11)
<li> James Gretchen (7.4.107.4.11)
<li> James Tyner (6.99.137.1)
<li> Jamie Wahls (7.47.4.10)
<li> Jan Mašek (7.17.4.10)
<li> JeongPyo Lee (6.99.137.4.10)
<li> Joanna B (6.99.137.4.10)
<li> Jamie Wahls (7.47.4.11)
<li> Jan Mašek (7.17.4.11)
<li> JeongPyo Lee (6.99.137.4.11)
<li> Joanna B (6.99.137.4.11)
<li> JohD (7.4)
<li> JohnnyOmaha (7.4.37.4.10)
<li> Jokeman (7.4.57.4.10)
<li> JohnnyOmaha (7.4.37.4.11)
<li> Jokeman (7.4.57.4.11)
<li> Jonas Kyratzes (7.1.17.4.7)
<li> jonnymelabo (6.99.137.4.10)
<li> jonnymelabo (6.99.137.4.11)
<li> Josh Kaplan (6.99.136.99.14.2)
<li> Juanito_Santos (7.4)
<li> Kampmichi (7.1.17.4.5)
<li> Katryna Starks (7.2.17.4.10)
<li> Katryna Starks (7.2.17.4.11)
<li> Kayde Initials (6.99.137.4)
<li> Keul (7.3.37.4)
<li> Kevin Clack (7.4.67.4.10)
<li> <a href="http://kexboy.com" rel="nofollow">KEXBOY</a> (6.99.137.4.10)
<li> Khailz (7.47.4.10)
<li> Kikai Digital (7.07.4.10)
<li> <a href="http://www.gamesbykinmoku.com" rel="nofollow">Kinmoku</a> (6.99.137.4.10)
<li> <a href="http://krsm94.web.fc2.com/" rel="nofollow">Klast Halc (crAsm)</a> (6.99.14.27.4.10)
<li> <a href="https://twitter.com/koda_v4" rel="nofollow">koda</a> (7.47.4.10)
<li> Kosmos Games (6.99.147.4.10)
<li> Kevin Clack (7.4.67.4.11)
<li> <a href="http://kexboy.com" rel="nofollow">KEXBOY</a> (6.99.137.4.11)
<li> Khailz (7.47.4.11)
<li> Kikai Digital (7.07.4.11)
<li> <a href="http://www.gamesbykinmoku.com" rel="nofollow">Kinmoku</a> (6.99.137.4.11)
<li> <a href="http://krsm94.web.fc2.com/" rel="nofollow">Klast Halc (crAsm)</a> (6.99.14.27.4.11)
<li> <a href="https://twitter.com/koda_v4" rel="nofollow">koda</a> (7.47.4.11)
<li> Kosmos Games (6.99.147.4.11)
<li> <a href="https://de.koubaibu.tech/" rel="nofollow">Koubaibu Technology Group</a> (7.17.1.2)
<li> Kraig Halfpap (6.99.14.27.3.3)
<li> Kthulian (7.4.67.4.10)
<li> Kthulian (7.4.67.4.11)
<li> L C (7.27.4)
<li> l8eral Jack (7.4.17.4.10)
<li> l8eral Jack (7.4.17.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://la-cucaracha-studios.itch.io/" rel="nofollow">La Cucaracha Studios</a> (7.1.27.4.6)
<li> <a href="http://waltz.moe/portfolio/" rel="nofollow">Laiska</a> (7.27.4)
<li> <a href="https://lernakow.itch.io/" rel="nofollow">Lernakow</a> (6.99.14.37.4, 7.4.97.4.10)
<li> Lettuce (7.4.37.4.10)
<li> <a href="https://lernakow.itch.io/" rel="nofollow">Lernakow</a> (6.99.14.37.4, 7.4.97.4.11)
<li> Lettuce (7.4.37.4.11)
<li> LewdKitty (7.07.2)
<li> LewdKitty (7.2.17.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.lewdlab.com/" rel="nofollow">Lewdlab</a> (6.99.14.17.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.lewdlab.com/" rel="nofollow">Lewdlab</a> (6.99.14.17.4.11)
<li> Lictor (6.99.14.27.1.2)
<li> Lingrimm (7.3.37.4)
<li> Little Napoleon (7.17.4.10)
<li> Lockheart (7.47.4.10)
<li> Little Napoleon (7.17.4.11)
<li> Lockheart (7.47.4.11)
<li> <a href="http://trash.moe/" rel="nofollow">Lore</a> (6.99.137.3.3)
<li> Luke Hartley (7.4.11)
<li> Luke Jackson (6.99.137.4)
<li> Lunar Parade (7.47.4.10)
<li> Lunar Parade (7.47.4.11)
<li> <a href="http://luscious-spirit-studios.tumblr.com/" rel="nofollow">Luscious Spirit Studios</a> (6.99.137.3.0)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/Luxee" rel="nofollow">Luxee</a> (6.99.14.37.4.10)
<li> Luxuria Games (7.4.67.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/VoodooMonkey" rel="nofollow">Lyla's Curse</a> (7.47.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/Luxee" rel="nofollow">Luxee</a> (6.99.14.37.4.11)
<li> Luxuria Games (7.4.67.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/VoodooMonkey" rel="nofollow">Lyla's Curse</a> (7.47.4.11)
<li> Maeve Bandruid (6.99.137.4)
<li> MagicNuts (7.47.4.10)
<li> Mama J (7.4.67.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/manitu" rel="nofollow">MANITU Games CO.</a> (6.99.137.4.10)
<li> ManorStories (6.99.147.4, 7.4.37.4.10)
<li> <a href="http://www.marionettecode.com/" rel="nofollow">Marionette</a> (6.99.147.4.10)
<li> Mary Macapagal (7.3.37.4.10)
<li> MagicNuts (7.47.4.11)
<li> Mama J (7.4.67.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/manitu" rel="nofollow">MANITU Games CO.</a> (6.99.137.4.11)
<li> ManorStories (6.99.147.4, 7.4.37.4.11)
<li> <a href="https://www.patreon.com/marcialart" rel="nofollow">MarcialART</a> (7.4.11)
<li> <a href="http://www.marionettecode.com/" rel="nofollow">Marionette</a> (6.99.147.4.11)
<li> Mary Macapagal (7.3.37.4.11)
<li> Matt (7.4.17.4.2)
<li> Matt Sequeira (7.4)
<li> Matthew (7.3.37.4)
<li> Matthew Preston (7.2)
<li> Matthew Preston (7.27.4.10)
<li> Matthew Vimislik (6.99.14.27.4.10)
<li> Matthew Preston (7.27.4.11)
<li> Matthew Vimislik (6.99.14.27.4.11)
<li> MAW.3D.Art (6.99.13)
<li> Max J Sher (6.99.137.4)
<li> MCatter Dev (7.17.4.10)
<li> <a href="https://meagantrott.com" rel="nofollow">Meagan Trott</a> (6.99.137.4.10)
<li> Meyvol (6.99.14.17.4.10)
<li> <a href="https://store.steampowered.com/developer/mia" rel="nofollow">Mia Blais-Côté</a> (7.3.07.3.3)
<li> Michael Lewis (7.27.4.10)
<li> Michael Simon (7.1.17.4.10)
<li> Michaela Amanda Laws (6.99.137.4.10)
<li> Mikolaj Kupiec (7.07.4.10)
<li> MCatter Dev (7.17.4.11)
<li> <a href="https://meagantrott.com" rel="nofollow">Meagan Trott</a> (6.99.137.4.11)
<li> Meyvol (6.99.14.17.4.11)
<li> Mia Blais-Côté (7.3.07.3.3, 7.4.11)
<li> Michael Lewis (7.27.4.11)
<li> Michael Simon (7.1.17.4.11)
<li> Michaela Amanda Laws (6.99.137.4.11)
<li> Mikolaj Kupiec (7.07.4.11)
<li> <a href="http://www.milkteestudios.com" rel="nofollow">Milktee Studios</a> (7.07.1)
<li> Miss Skizzors (7.07.4.10)
<li> model mili (7.4.77.4.10)
<li> Moogs Parfait (6.99.137.4.10)
<li> Miss Skizzors (7.07.4.11)
<li> model mili (7.4.77.4.11)
<li> Moogs Parfait (6.99.137.4.11)
<li> MrValdez (7.07.4, 7.4.37.4.8)
<li> <a href="https://ms45.itch.io" rel="nofollow">Ms .45</a> (6.99.13)
<li> Ms DOS (7.3.07.4)
<li> <a href="https://www.patreon.com/muplur" rel="nofollow">MUPLUR</a> (7.3.07.4.2)
<li> Mychal robinson (7.4)
<li> Narutuzu (7.47.4.10)
<li> nasredin (6.99.14.37.4.10)
<li> Narutuzu (7.47.4.11)
<li> nasredin (6.99.14.37.4.11)
<li> Natalie Van Sistine (7.07.3.3)
<li> Naughty Road (7.4.17.4.10)
<li> Naughty Road (7.4.17.4.11)
<li> <a href="https://cafe.naver.com/vmo.cafe" rel="nofollow">Naver cafe VMO</a> (7.17.4)
<li> <a href="http://cafe.naver.com/vmo" rel="nofollow">NaverCafe VMO</a> (6.99.137.1)
<li> Neigan (7.0)
<li> Nicholas Beard (7.4.3)
<li> <a href="https://www.patreon.com/nikraria" rel="nofollow">nikraria</a> (6.99.137.4.10)
<li> <a href="https://www.patreon.com/nikraria" rel="nofollow">nikraria</a> (6.99.137.4.11)
<li> niktwazny (7.4.5)
<li> Ninecrux (7.4.77.4.10)
<li> NOODLEMANNY (7.4.97.4.10)
<li> Ninecrux (7.4.77.4.11)
<li> NOODLEMANNY (7.4.97.4.11)
<li> Nova Alamak (6.99.14.37.3.3)
<li> <a href="http://devety.com" rel="nofollow">Oleksii olety Kyrylchuk</a> (6.99.14.16.99.14.2)
<li> Oppai-Man (7.4.57.4.10)
<li> Panda Penguin Games (7.27.4.10)
<li> Oppai-Man (7.4.57.4.11)
<li> Panda Penguin Games (7.27.4.11)
<li> Panthera Morag (6.99.137.2)
<li> Passion City (7.4)
<li> Patchwork Princess (7.17.3.0)
<li> Patricia (6.99.137.1.1)
<li> <a href="https://store.steampowered.com/app/1327540/Cross_the_Moon/" rel="nofollow">Patrick Rainville</a> (7.4.57.4.10)
<li> <a href="https://store.steampowered.com/app/1327540/Cross_the_Moon/" rel="nofollow">Patrick Rainville</a> (7.4.57.4.11)
<li> Paul Birchenough (7.3.0)
<li> <a href="http://peachpattch.com/" rel="nofollow">peachpattch</a> (6.99.147.4)
<li> Pete Goodwin (7.3.07.4.10)
<li> philat (6.99.14.17.4.10)
<li> Pete Goodwin (7.3.07.4.11)
<li> philat (6.99.14.17.4.11)
<li> Pi3shark (7.27.4)
<li> <a href="https://store.steampowered.com/search/?publisher=Pingfang%20Games" rel="nofollow">Pingfang Games</a> (7.47.4.10)
<li> plasterbrain (6.99.137.4.10)
<li> <a href="https://store.steampowered.com/search/?publisher=Pingfang%20Games" rel="nofollow">Pingfang Games</a> (7.47.4.11)
<li> plasterbrain (6.99.137.4.11)
<li> Ploppertje (6.99.136.99.14.3)
<li> <a href="https://about.plus9.io/renpy/" rel="nofollow">Plus9</a> (7.4.9)
<li> Podge (6.99.137.4)
<li> Prometheus (7.3.37.4)
<li> PublicLewdness (7.4.11)
<li> Puriwit Sesupaponphong (6.99.13)
<li> Puriwit Sesupaponphong (6.99.137.1)
<li> Pyonkotchi (7.17.4.9)
<li> Pyonkotchi (7.17.4.9, 7.4.11)
<li> Pólyí Konrád (7.17.1.1)
<li> quakefultales (7.47.4.10)
<li> quakefultales (7.47.4.11)
<li> <a href="http://www.cottoncandycyanide.com/" rel="nofollow">Quantum Suicide</a> (7.17.2)
<li> <a href="https://www.nintendo.com/games/detail/a-summer-with-the-shiba-inu-switch/" rel="nofollow">Quill Game Studios</a> (7.47.4.10)
<li> Rachel (6.99.137.4.10)
<li> <a href="http://ratalaikagames.com/renpybanner.php" rel="nofollow">Ratalaika Games</a> (7.47.4.10)
<li> <a href="http://razzartvisual.com/" rel="nofollow">Razz</a> (6.99.137.4.10)
<li> <a href="https://www.nintendo.com/games/detail/a-summer-with-the-shiba-inu-switch/" rel="nofollow">Quill Game Studios</a> (7.47.4.11)
<li> Rachel (6.99.137.4.11)
<li> <a href="http://ratalaikagames.com/renpybanner.php" rel="nofollow">Ratalaika Games</a> (7.47.4.11)
<li> <a href="http://razzartvisual.com/" rel="nofollow">Razz</a> (6.99.137.4.11)
<li> <a href="https://twitter.com/ragnarhomsar" rel="nofollow">Realga</a> (7.07.1)
<li> Red Lotus Designz (7.3.07.4.10)
<li> René Dudfield (6.99.137.4.10)
<li> Richard (6.99.147.4.10)
<li> Red Lotus Designz (7.3.07.4.11)
<li> René Dudfield (6.99.137.4.11)
<li> Richard (6.99.147.4.11)
<li> <a href="http://impqueen.com/" rel="nofollow">Rinmaru</a> (6.99.137.3.0)
<li> Rizia Praja (6.99.14.17.4)
<li> <a href="https://robcolton.com/games" rel="nofollow">Rob Colton</a> (7.27.4.10)
<li> <a href="https://robcolton.com/games" rel="nofollow">Rob Colton</a> (7.27.4.11)
<li> robert Vince Jr (7.4)
<li> <a href="https://www.renpy.org/agegate?url=https://f95zone.to/threads/rocking-robin-v0-5b-robbery1211.26188/" rel="nofollow">Rocking Robin</a> (7.47.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://f95zone.to/threads/rocking-robin-v0-5b-robbery1211.26188/" rel="nofollow">Rocking Robin</a> (7.47.4.11)
<li> <a href="http://sunkoiwish.com/" rel="nofollow">Royce A Xaiyeon</a> (6.99.137.2)
<li> Rui Jiang (7.3.07.4)
<li> <a href="https://ub4q.itch.io/" rel="nofollow">ruqiyah</a> (7.3.37.4.10)
<li> <a href="https://ub4q.itch.io/" rel="nofollow">ruqiyah</a> (7.3.37.4.11)
<li> Ryan Whited (6.99.147.1)
<li> <a href="https://www.patreon.com/Sad_Crab" rel="nofollow">Sad Crab Company</a> (7.47.4.10)
<li> <a href="https://www.patreon.com/Sad_Crab" rel="nofollow">Sad Crab Company</a> (7.47.4.11)
<li> <a href="https://saiffyros.wordpress.com/" rel="nofollow">Saiffyros</a> (6.99.147.4.9)
<li> Sam Yang (6.99.137.3.0)
<li> Samantha (7.47.4.5)
<li> Samibotss CONET (7.4.11)
<li> scandis (7.3.37.4)
<li> <a href="https://github.com/scj643" rel="nofollow">scj643</a> (7.47.4.10)
<li> SG Game Design (7.4.97.4.10)
<li> <a href="https://twitter.com/SilkenSail" rel="nofollow">Silken Sail Entertainment</a> (7.47.4.10)
<li> <a href="https://github.com/scj643" rel="nofollow">scj643</a> (7.47.4.11)
<li> SG Game Design (7.4.97.4.11)
<li> <a href="https://twitter.com/SilkenSail" rel="nofollow">Silken Sail Entertainment</a> (7.47.4.11)
<li> Simply Aria (6.99.147.2)
<li> SkinnGames (7.47.4.10)
<li> <a href="https://www.skybeargames.com" rel="nofollow">Sky Bear Games</a> (7.3.07.4.10)
<li> SkyCloudGames (7.4.97.4.10)
<li> <a href="http://sleepyagents.co.uk" rel="nofollow">Sleepy Agents</a> (6.99.137.4.10)
<li> SkinnGames (7.47.4.11)
<li> <a href="https://www.skybeargames.com" rel="nofollow">Sky Bear Games</a> (7.3.07.4.11)
<li> SkyCloudGames (7.4.97.4.11)
<li> <a href="http://sleepyagents.co.uk" rel="nofollow">Sleepy Agents</a> (6.99.137.4.11)
<li> <a href="https://twitter.com/slyestial" rel="nofollow">Slyestial</a> (7.4)
<li> Snowlocke (7.07.4.10)
<li> Snowlocke (7.07.4.11)
<li> <a href="http://store.steampowered.com/app/570350/Sorry_Entschuldigung__A_Psychological_Horror_Visual_Novel/" rel="nofollow">Sorry. (Entschuldigung)</a> (6.99.14.27.1)
<li> <a href="https://store.steampowered.com/app/1706470/Space_to_Grow/" rel="nofollow">Space to Grow</a> (6.99.137.4.10)
<li> speedycalm (7.47.4.10)
<li> <a href="https://store.steampowered.com/app/1706470/Space_to_Grow/" rel="nofollow">Space to Grow</a> (6.99.137.4.11)
<li> speedycalm (7.47.4.11)
<li> Spyros Panagiotopoulos (6.99.147.1)
<li> Steamgirl (6.99.136.99.14, 7.27.4.10)
<li> Steamgirl (6.99.136.99.14, 7.27.4.11)
<li> Steamlynx (6.99.14.17.4)
<li> Stefan Gagne (6.99.137.4.10)
<li> Stephen Theyer (7.4.97.4.10)
<li> Stefan Gagne (6.99.137.4.11)
<li> Stephen Theyer (7.4.97.4.11)
<li> steven (7.47.4.9)
<li> STEVEN HOWARD (7.4)
<li> <a href="https://www.renpy.org/agegate?url=http://www.patreon.com/errilhl" rel="nofollow">Studio Errilhl</a> (6.99.14.37.4.3)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/studioerrilhl" rel="nofollow">Studio Errilhl</a> (7.4.37.4.10)
<li> Studio Lupiesoft (6.99.137.4.10)
<li> <a href="https://vnstudioelan.com/" rel="nofollow">Studio Élan</a> (7.2.17.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/studioerrilhl" rel="nofollow">Studio Errilhl</a> (7.4.37.4.11)
<li> Studio Lupiesoft (6.99.137.4.11)
<li> <a href="https://vnstudioelan.com/" rel="nofollow">Studio Élan</a> (7.2.17.4.11)
<li> Sugar Joe (7.27.4.3)
<li> <a href="https://play.google.com/store/apps/developer?id=Suhaimizs&hl=en" rel="nofollow">Suhaimizs</a> (7.2)
<li> <a href="https://ladyisak.itch.io/" rel="nofollow">Sych Games</a> (7.3.07.4)
<li> SYH (7.47.4.10)
<li> SYH (7.47.4.11)
<li> Sébastien Irola (7.47.4.5)
<li> T-Patch (7.3.07.4.7)
<li> Team Borsch (7.3.07.4.10)
<li> Team Borsch (7.3.07.4.11)
<li> Teofilo Hurtado (6.99.147.1.1)
<li> TERNOX (7.47.4.5)
<li> TERNOX (7.4.57.4.10)
<li> <a href="https://TheClimateTrail.com" rel="nofollow">The Climate Trail</a> (7.47.4.10)
<li> the66 (7.27.4.10)
<li> Thibaut de la Chapelle (7.3.37.4.10)
<li> TERNOX (7.4.57.4.11)
<li> <a href="https://TheClimateTrail.com" rel="nofollow">The Climate Trail</a> (7.47.4.11)
<li> the66 (7.27.4.11)
<li> Thibaut de la Chapelle (7.3.37.4.11)
<li> Thomas Charlie (6.99.137.2)
<li> Timothy Young (6.99.14.17.4.10)
<li> Timothy Young (6.99.14.17.4.11)
<li> TJ Huckabee (6.99.137.4)
<li> ToastCrust (6.99.136.99.14)
<li> Tobias Wüthrich (6.99.136.99.14.3)
<li> <a href="http://www.shadowpath.com" rel="nofollow">Tom Dowd</a> (7.3.37.4.10)
<li> <a href="http://www.shadowpath.com" rel="nofollow">Tom Dowd</a> (7.3.37.4.11)
<li> Tonny33 (7.4)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/tremmiGames" rel="nofollow">tremmiGames</a> (7.07.4.10)
<li> trooper6 (6.99.137.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.patreon.com/tremmiGames" rel="nofollow">tremmiGames</a> (7.07.4.11)
<li> trooper6 (6.99.137.4.11)
<li> TropeCode (7.47.4.2)
<li> <a href="https://www.youtube.com/tryinmorning" rel="nofollow">tryinmorning</a> (6.99.137.4.9)
<li> tryinmorning (6.99.137.4.9, 7.4.11)
<li> Tsad (7.47.4.9)
<li> Ven Jacobs (7.4.37.4.10)
<li> Vikks Hallowhaunt (7.3.37.4.10)
<li> ViNovella (7.47.4.10)
<li> Ven Jacobs (7.4.37.4.11)
<li> Vikks Hallowhaunt (7.3.37.4.11)
<li> ViNovella (7.47.4.11)
<li> VJ (7.3.3)
<li> Vollschauer (6.99.136.99.14)
<li> <a href="http://vxlloyd.com" rel="nofollow">VX Lloyd</a> (6.99.14.37.0)
<li> Wayne Wollesen (6.99.14.37.1.1)
<li> <a href="https://www.facebook.com/weeabooriot" rel="nofollow">Weeabooriot Cosplay</a> (6.99.137.4.10)
<li> <a href="https://www.renpy.org/agegate?url=https://www.whitephantomgames.co.uk/" rel="nofollow">White Phantom Games</a> (7.4.97.4.10)
<li> <a href="https://www.facebook.com/weeabooriot" rel="nofollow">Weeabooriot Cosplay</a> (6.99.137.4.11)
<li> <a href="https://www.renpy.org/agegate?url=https://www.whitephantomgames.co.uk/" rel="nofollow">White Phantom Games</a> (7.4.97.4.11)
<li> William (7.4)
<li> <a href="https://arcaniinteractive.com/" rel="nofollow">William Lucht</a> (7.07.4.5)
<li> William McGowen (7.47.4.10)
<li> William McGowen (7.47.4.11)
<li> William Tumeo (6.99.137.1.2)
<li> <a href="http://winterwolves.com/ambersmagicshop.htm" rel="nofollow">Winter Wolves</a> (6.99.137.4.10)
<li> <a href="https://www.wolfbiteinteractive.com/" rel="nofollow">WolfBite Interactive</a> (7.27.4.10)
<li> <a href="http://winterwolves.com/ambersmagicshop.htm" rel="nofollow">Winter Wolves</a> (6.99.137.4.11)
<li> <a href="https://www.wolfbiteinteractive.com/" rel="nofollow">WolfBite Interactive</a> (7.27.4.11)
<li> wtx (7.4.17.4.3)
<li> Xiphear (7.3.37.4)
<li> xoeleox (7.4.67.4.10)
<li> xoeleox (7.4.67.4.11)
<li> Y Press Games (7.27.4)
<li> Y Press Games (7.47.4.10)
<li> <a href="http://astralore.com/" rel="nofollow">Yakmala!</a> (6.99.137.4.10)
<li> Zanith (7.47.4.10)
<li> Y Press Games (7.47.4.11)
<li> <a href="http://astralore.com/" rel="nofollow">Yakmala!</a> (6.99.137.4.11)
<li> Zanith (7.47.4.11)
<li> <a href="https://zimoncoldres.itch.io/champion-of-realms" rel="nofollow">Zimon</a> (7.4.57.4.9)
</ul>