Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags
(+2)

No promises in the immediate future. I'm hoping to move to renpy 8.0 sometime soon, which does support it again, but it can't be hosted on itch anymore.

I know that some pirate/secondary sites forcibly convert the game to web lol - idk much about them, I think gamcore has it?

Been so long since I thought about 0.23c that I can't help much there, I don't have any of the code. All I can say is that it isn't an issue in .24, .25, or .26. Did you do any kind of save editing, or is that a vanilla issue?

(1 edit)

First off - thanks for your quick reaction!

It’s a vanilla thing. Also tried starting from scratch, but it the behavior is the same. 
Gamcore indeed has Divine Dawn 0.24 :D let’s check there. Sorry for using these ripoff-platforms as a workaround :/

Hm… where would you move to when migrating to rpy8.0?

(+2)

I have never gotten a single report similar to that, from 0.23 or 24, so somehow it's unique to you. Might have something to do with the browser or OS? idk.

The game won't go anywhere on 8.0, it's just a backend engine change. Will cause some weird bugs and errors for a few days as I and beta testers try to find and fix them all, then 8.0 generally has better compatibility and features than 7.5 did. At least with modern stuff, idk about older OS.

(+2)

I see. I was wondering why you wrote that you can’t host the game on itch anymore if you move to 8.0

My guess is that my error is related to lewdspot’s in-browser adaptation. Same bug occurs when opening the lewdspot version on an up-to-date macOS / safari combo.

(+2)

8.0 didn't have web support at all for a long time, re-adding it was very recent. I'm not sure how well it works yet. Itch and renpy both have a variety of issues with web versions unfortunately; there's missing functionality and major issues on itch's end as well as what seem to be effectively unfixable problems on renpy's end for a web game as complicated as this.

It's possible I will be able to find a workable middle ground down the road, but right now I can't make any promises about web version anytime soon.

(+1)

i See. Thanks for clarification. 

(1 edit)

Hi Cryswar :)

I've got me a Mac with current macOS, installed the latest release (.26) and threw my exported saves from lewdspot's web emulated .23c into it.

This solved the problems I had experienced. Guess the emulation just sucks 

BUT

I ran into an issue with Aether skills that hit all enemies in v26. The battle will crash as soon as I'm using a  skill like Eleth Flare (see below) or Imperium. 

[code]

I'm sorry, but an uncaught exception occurred.

While running game code:

  File "game/dawncode/adventures/adventure_framework.rpy", line 39, in script call

    call adventure_randomizer

  File "game/dawncode/adventures/adventure_framework.rpy", line 68, in script call

    $ setupEncounter(enemy1=adventure_enemy_1, enemy2=adventure_enemy_2, enemy3=adventure_enemy_3, music=adventureArea.battleMusic, fieldName=adventureArea.fieldEffect, levelScaling=adventureArea.levelScaling, levelBoost=adventureArea.levelBoost, levelRandom=adventureArea.levelRandom, levelTarget=adventureArea.levelTarget, scalingCap=adventureArea.scalingCap)

  File "game/dawncode/combat.rpy", line 84, in script

    call screen combat_menu_base

  File "renpy/common/000statements.rpy", line 609, in execute_call_screen

    store._return = renpy.call_screen(name, *args, **kwargs)

  File "game/dawncode/bars.rpy", line 977, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 977, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 979, in execute

    frame:

  File "game/dawncode/bars.rpy", line 985, in execute

    vbox:

  File "game/dawncode/bars.rpy", line 992, in execute

    if any("Heal" in x["Tag"] for x in ability.abilityTags):

  File "game/dawncode/bars.rpy", line 993, in execute

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/bars.rpy", line 993, in <module>

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/functions.rpy", line 3406, in guessHealing

    thisHeal = calculateHealing(user, target, ability, i, ignoreCap=True)

  File "game/dawncode/functions.rpy", line 627, in calculateHealing

    thisHeal = calculateScaling(target, user, tags, ability) + calculateTraitScaling(target, user, tags, ability) + getTraitTagCombat(user, target, "Heal Scaling", ability)

  File "game/dawncode/functions.rpy", line 2141, in getTraitTagCombat

    if checkConditionals(actor, target, j, ability):

  File "game/dawncode/functions.rpy", line 643, in checkConditionals

    if "TargetHealthLessThan" in tag and not getHealthPercent(target) <= tag["TargetHealthLessThan"]:

  File "game/dawncode/functions.rpy", line 2765, in getHealthPercent

    return round(100 * (float(actor.health) / getMaxHealth(actor)))

AttributeError: 'RevertableList' object has no attribute 'health'

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

Full traceback:

  File "game/dawncode/adventures/adventure_framework.rpy", line 39, in script call

    call adventure_randomizer

  File "game/dawncode/adventures/adventure_framework.rpy", line 68, in script call

    $ setupEncounter(enemy1=adventure_enemy_1, enemy2=adventure_enemy_2, enemy3=adventure_enemy_3, music=adventureArea.battleMusic, fieldName=adventureArea.fieldEffect, levelScaling=adventureArea.levelScaling, levelBoost=adventureArea.levelBoost, levelRandom=adventureArea.levelRandom, levelTarget=adventureArea.levelTarget, scalingCap=adventureArea.scalingCap)

  File "game/dawncode/combat.rpy", line 84, in script

    call screen combat_menu_base

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/ast.py", line 2232, in execute

    self.call("execute")

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/ast.py", line 2220, in call

    return renpy.statements.call(method, parsed, *args, **kwargs)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/statements.py", line 281, in call

    return method(parsed, *args, **kwargs)

  File "renpy/common/000statements.rpy", line 609, in execute_call_screen

    store._return = renpy.call_screen(name, *args, **kwargs)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/exports.py", line 3181, in call_screen

    rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/ui.py", line 299, in interact

    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 3377, in interact

    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 3810, in interact_core

    root_widget.visit_all(lambda i : i.per_interact())

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 582, in visit_all

    d.visit_all(callback, seen)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 582, in visit_all

    d.visit_all(callback, seen)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 582, in visit_all

    d.visit_all(callback, seen)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/screen.py", line 451, in visit_all

    callback(self)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 3810, in <lambda>

    root_widget.visit_all(lambda i : i.per_interact())

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/screen.py", line 462, in per_interact

    self.update()

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/screen.py", line 653, in update

    self.screen.function(**self.scope)

  File "game/dawncode/bars.rpy", line 977, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 977, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 979, in execute

    frame:

  File "game/dawncode/bars.rpy", line 985, in execute

    vbox:

  File "game/dawncode/bars.rpy", line 992, in execute

    if any("Heal" in x["Tag"] for x in ability.abilityTags):

  File "game/dawncode/bars.rpy", line 993, in execute

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/bars.rpy", line 993, in <module>

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/functions.rpy", line 3406, in guessHealing

    thisHeal = calculateHealing(user, target, ability, i, ignoreCap=True)

  File "game/dawncode/functions.rpy", line 627, in calculateHealing

    thisHeal = calculateScaling(target, user, tags, ability) + calculateTraitScaling(target, user, tags, ability) + getTraitTagCombat(user, target, "Heal Scaling", ability)

  File "game/dawncode/functions.rpy", line 2141, in getTraitTagCombat

    if checkConditionals(actor, target, j, ability):

  File "game/dawncode/functions.rpy", line 643, in checkConditionals

    if "TargetHealthLessThan" in tag and not getHealthPercent(target) <= tag["TargetHealthLessThan"]:

  File "game/dawncode/functions.rpy", line 2765, in getHealthPercent

    return round(100 * (float(actor.health) / getMaxHealth(actor)))

AttributeError: 'RevertableList' object has no attribute 'health'

Darwin-22.5.0-x86_64-i386-64bit x86_64

Ren'Py 7.5.3.22090809

Divine Dawn 0.26

Wed Jul 19 11:15:29 2023

[/code]

(+1)

Seems like about the same error (revertable list again), I think something about the emulated save is just kinda fucky. No one else has ever reported a similar bug so I don't think it's an issue in the game. I'll still look and see if I can find any fringe issues that could be causing it.

(+2)

Thanks. You‘re probably right and it‘s something that got ported.

(+1)

I will do my best to find if it's something in the code, just don't want to give you false hopes. Renpy, emulators, and web versions can get complicated, and I rely on Renpy's internal porting stuff for the different versions, idk anything about macs myself, so if renpy throws a shitfit on an emulated/mac version I can't do a whole lot to fix it.

(+2)

Thx.  I‘ll start a new game from scratch, meanwhile. If the error is somehow related to the exported (emulated) .23c savegames, it should be gone. 

Playing kind of a D&D Warlock (main attributes Magic and Charisma, secondary Insight and Focus) ist quite entertaining :) 

(+1)

Hah - that warlock idea sounds fun! Hopefully I'll be able to fit in more spell schools matching it over time, I'm still not sure if Zephyrmancy should be insight/magic, charisma/magic, or charisma/insight - but I feel like it needs at least some magic somewhere in there.

Here's hoping a new game solves your issues - sorry you've had so much trouble, the world of emulation and different game versions is wildly confusing for me.

(+2)

Yep, it is :) 
For the moment, I‘m a Bard/Aether crossover with nearly no skills from the charisma tree because I prefer frontlining. 
So, playing a healing tune on my harp while wreaking Phantasmal Lances havoc and convincing NPCs by charisma ist the way… 

Re my issues: nevermind :) you can‘t be held responsible for bad emulators, unwanted ports or pirated copies. Right? ;) 

Hi Cryswar, 

I've started a new game (v0.26 macOS) and just stumbled across another issue. 

In battle, when I select my topmost multitarget spell (Eleth Flare again...) and then move the mouse pointer straight to the right towards the target selection, the game crashes. 

If I move the cursor down first, then across and "approach" the target list from the left, all works as intended... 


[code]

I'm sorry, but an uncaught exception occurred.

While running game code:

  File "game/dawncode/camp/camp_framework.rpy", line 73, in script call

    call screen camp_home

  File "game/dawncode/camp/camp_framework.rpy", line 73, in script call

    call screen camp_home

  File "game/dawncode/camp/camp_framework.rpy", line 73, in script call

    call screen camp_home

  [Previous line repeated 6 more times]

  File "game/dawncode/adventures/adventure_framework.rpy", line 39, in script call

    call adventure_randomizer

  File "game/dawncode/adventures/adventure_framework.rpy", line 68, in script call

    $ setupEncounter(enemy1=adventure_enemy_1, enemy2=adventure_enemy_2, enemy3=adventure_enemy_3, music=adventureArea.battleMusic, fieldName=adventureArea.fieldEffect, levelScaling=adventureArea.levelScaling, levelBoost=adventureArea.levelBoost, levelRandom=adventureArea.levelRandom, levelTarget=adventureArea.levelTarget, scalingCap=adventureArea.scalingCap)

  File "game/dawncode/combat.rpy", line 86, in script

    call screen combat_menu_base

  File "renpy/common/000statements.rpy", line 670, in execute_call_screen

    store._return = renpy.call_screen(name, *args, **kwargs)

  File "game/dawncode/bars.rpy", line 988, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 988, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 990, in execute

    frame:

  File "game/dawncode/bars.rpy", line 996, in execute

    vbox:

  File "game/dawncode/bars.rpy", line 1003, in execute

    if any("Heal" in x["Tag"] for x in ability.abilityTags):

  File "game/dawncode/bars.rpy", line 1004, in execute

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/bars.rpy", line 1004, in <module>

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/functions.rpy", line 3443, in guessHealing

    if checkConditionals(user, target, i, ability):

  File "game/dawncode/functions.rpy", line 647, in checkConditionals

    if "TargetStatusTrue" in tag and not hasStatus(target.status, tag["TargetStatusTrue"]):

AttributeError: 'RevertableList' object has no attribute 'status'

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

Full traceback:

  File "game/dawncode/camp/camp_framework.rpy", line 73, in script call

    call screen camp_home

  File "game/dawncode/camp/camp_framework.rpy", line 73, in script call

    call screen camp_home

  File "game/dawncode/camp/camp_framework.rpy", line 73, in script call

    call screen camp_home

  [Previous line repeated 6 more times]

  File "game/dawncode/adventures/adventure_framework.rpy", line 39, in script call

    call adventure_randomizer

  File "game/dawncode/adventures/adventure_framework.rpy", line 68, in script call

    $ setupEncounter(enemy1=adventure_enemy_1, enemy2=adventure_enemy_2, enemy3=adventure_enemy_3, music=adventureArea.battleMusic, fieldName=adventureArea.fieldEffect, levelScaling=adventureArea.levelScaling, levelBoost=adventureArea.levelBoost, levelRandom=adventureArea.levelRandom, levelTarget=adventureArea.levelTarget, scalingCap=adventureArea.scalingCap)

  File "game/dawncode/combat.rpy", line 86, in script

    call screen combat_menu_base

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/ast.py", line 2259, in execute

    self.call("execute")

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/ast.py", line 2241, in call

    return renpy.statements.call(method, parsed, *args, **kwargs)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/statements.py", line 342, in call

    return method(parsed, *args, **kwargs)

  File "renpy/common/000statements.rpy", line 670, in execute_call_screen

    store._return = renpy.call_screen(name, *args, **kwargs)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/exports.py", line 3345, in call_screen

    rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/ui.py", line 299, in interact

    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 3579, in interact

    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 4052, in interact_core

    root_widget.visit_all(lambda d : d.per_interact())

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 681, in visit_all

    d.visit_all(callback, seen)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 681, in visit_all

    d.visit_all(callback, seen)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 681, in visit_all

    d.visit_all(callback, seen)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/screen.py", line 476, in visit_all

    callback(self)

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/core.py", line 4052, in <lambda>

    root_widget.visit_all(lambda d : d.per_interact())

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/screen.py", line 487, in per_interact

    self.update()

  File "/Users/florian/DivineDawn.app/Contents/Resources/autorun/renpy/display/screen.py", line 680, in update

    self.screen.function(**self.scope)

  File "game/dawncode/bars.rpy", line 988, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 988, in execute

    screen abilityTooltip(ability):

  File "game/dawncode/bars.rpy", line 990, in execute

    frame:

  File "game/dawncode/bars.rpy", line 996, in execute

    vbox:

  File "game/dawncode/bars.rpy", line 1003, in execute

    if any("Heal" in x["Tag"] for x in ability.abilityTags):

  File "game/dawncode/bars.rpy", line 1004, in execute

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/bars.rpy", line 1004, in <module>

    text "Health restored to target: " + str(int(guessHealing(player, player.abilityTarget or store.monsterList[0], ability))) size 20 xalign 0.5 color "#00A36C"

  File "game/dawncode/functions.rpy", line 3443, in guessHealing

    if checkConditionals(user, target, i, ability):

  File "game/dawncode/functions.rpy", line 647, in checkConditionals

    if "TargetStatusTrue" in tag and not hasStatus(target.status, tag["TargetStatusTrue"]):

AttributeError: 'RevertableList' object has no attribute 'status'

macOS-13.5-arm64-arm-64bit arm64

Ren'Py 8.1.1.23060707

Divine Dawn 0.26b

Fri Aug 18 16:45:29 2023

[/code]