#Lumien231's Bloodmoon for Fabric remake (+Bad Sun)

465 messages · Page 1 of 1 (latest)

craggy lotus
#

I'm looking for someone to do a remake from scratch (original is ARR, so a direct fork form that isn't possible - althrough someone tried their luck doing a no-license port for Fabric 1.19.2 themselves) of Lumien231's take on Bloodmoon (GH) mod to Fabric (preferentially for 1.21.1 or 1.21.4+).

I want this specific concept because other similar implementations are either datapacks (i really don't like that being implemented as a DP) or deviates too much from the style of this one - adding extra mechanics and stuff, while this one only adds the event itself and tweaks the hostile mob spawning during it.

The only changes i would like to see in the original concept is including on the event's spawn list vanilla hostile mobs that appeared after the last update of that mod - specially phantons, breezes, biome-specific creakings if Grafted Creaking is detected on the modpack and maybe even wardens (albeit very rarely).

The final thing i would like to have on such remake is a "Bad Sun" event, inspired by one of SCP-001 proposals, and that featured in games like Voices of the Void (this one being the approach i would like to see in this mod) and as a custom story for SOMA. Basically, as bloodmoons, there is days where the sun will literally scorch the land, setting entities on fire (including the player), melting snow and ice and changing biome colors to reflect this harsh situation. When the "sun" sets, the ambient slowly returns to the normal.

GitHub

Bloodmoon, ported to Fabric 1.19.2, for Crimecraft S3. - BluSpring/Bloodmoon-Fabric

craggy lotus
#

🆙

mental tendon
#

My Team and I have been working on a simmilar mod although it isn’t finished e.g no Monsters Spawning in blood moon I’ll let you know when we’re at a release finished state

craggy lotus
mental tendon
#

It’s not on the list currently but we can add it Evan if not the api of our mod will make it easy to add other events

craggy lotus
fading cypress
#

Have you tried Enhanced Celestials?

craggy lotus
#

was too much different from the og mod for my taste

craggy lotus
#

🆙

craggy lotus
#

@pine flicker saw that you was working in a mod revamping phantoms, that i mentioned as one of the features of this remake.

Would you have interest?

pine flicker
#

Ping me after blanketcon

craggy lotus
#

blanketcon?

pine flicker
#

https://modfest.net/
Blanketcon is a sort of modding convention held by modfest
I’m developing mods for the upcoming blanketcon so I’m busy with those right now

craggy lotus
#

oh i see

#

will it be held until when?

pine flicker
#

No idea

#

Registration starts in march

craggy lotus
#

oh i see

craggy lotus
#

🆙

#

@pine flicker did the Blanketcon already ended?

pine flicker
#

Nope give me about another month

craggy lotus
#

🆙 taking opportunity of 1.21.5 release

craggy lotus
#

@vale pond maybe you could have interest later..

vale pond
#

Sorry, I'm not really interested in porting this.

craggy lotus
#

hoping then that @pine flicker could pick up it 🙏

craggy lotus
#

🆙 again

craggy lotus
#

@tardy granite would be this more easier to do next than Linkart?

tardy granite
#

now the initial thought I have is to somewhat mixin and fiddle with minecrafts hostile mob ai and that scares me more than minecarts

#

but should be easier

craggy lotus
tardy granite
#

does it

#

I thought it tampered with some health stuff and so as well

#

alr im just bad at pve then ig

craggy lotus
#

english isnt my first language

tardy granite
#

pve - player vs entity

#

i.e. fighting against mobs

craggy lotus
#

ahh i see

noble flame
#

wow you're very dedicated

#

this is crazy i found your old github post while browsing

#

been here since june 2023

craggy lotus
#

and what is out there that is remotely similar isn't good imo

tardy granite
#

soo what did this mod do now?

#

just modify spawnrate at bloodmoon event?

craggy lotus
#

for a rewrite for modern minecraft, i was also thinking in make the "new" hostile mobs that didnt existed back in 1.12.2 to spawn during those nights

#

for example, making phantoms spawn during the event (regardless of if the player slept in previous nights)

#

phantoms

#

breezes

#

and in very rare chances, a warden

#

thats for the bloodmoon event

#

for the bad sun event, it's more to make daylight burn all mobs exposed to the sun (and tint the biome colors with autumn-like colors to make it look like it burned the vegetation

#

temporally, of course

#

the sun would have a censor bar covering it relative to each player

#

before / during the bad sun event and for a whole (before returning to normal)

vale pond
#

And I suspect that the sun would do a little more than ignite all mobs exposed to it...

tardy granite
#

huh

#

alr nothing's impossible

#

just gotta look into packets a bit more

craggy lotus
#

on the SCP wiki it have this image to illustrate

craggy lotus
# vale pond And I suspect that the sun would do a little more than ignite all mobs exposed t...

well, from the SCP wiki page:

Upon contact with visible light produced by the sun, living organisms liquefy at the point of contact, with the effect spreading until the entire organism is converted. Visually, this is reminiscent of melting wax. The time this takes is largely dependent on the level of exposure and size of the organism. Despite this restructuring, at no point do living organisms perish.

Upon completion, these organisms (SCP-001-A) take on a gelatinous consistency. Motile organisms will attempt to orient themselves in a fashion reminiscent of their previous form, to varying degrees of success.

#

but the description i put ip OP was, again, more aligned with the VotV implementation

#

that just make the player lose health and die

#

but adapted to Minecraft mechanics

#

the closest thing i imagined was just set all living entities exposed to the "sun" on fire like what normally happens with undead mobs

vale pond
#

Well, if you want it to look unnatural, I'd recommend not using fire. Direct damage would work best, I think.

craggy lotus
#

it didnt set the player on fire on votv either

#

and there is other ways to catch fire on that game

#

so, separate things

#

also in votv the player view, when in direct line of sight with the "sun", is pulled towards it

#

maybe hard to implement at first in a mod

#

but worth of note for the future

#

well, if @tardy granite ever start working on that, you can concentrate at first in the bloodmoon event that is the kernel of the request

#

the bad sun event would be a delightful plus

tardy granite
#

imma look into it tomorrow

#

gotta think if I make it two separate mods though

#

just see if I manage to make mod dependencies and libraries

#

(I'm actually a java-disliker, never worked with that way)

noble flame
tardy granite
#

just see if I manage to make mod dependencies and libraries
(I'm actually a java-disliker, never worked with that way)

noble flame
#

huh

#

you mean one version to incorporate dependencies

#

and another that doesn't

tardy granite
#

no I mean

#

use multiple modules in one project with gradle, i.e. one "mod" that is like the core of these, which just contains classes and repeating logic (like integrating those events into minecraft and spread them across clients on join, etc.) and then one mod for the bloodmoon and one for the bad sun, that just use that core library

#

kinda stuff

#

I could make that in one mod, of course. I would abstract those mechanics either way, just so that I don't have to repeatedly write the same code

#

but I'd like to play around a bit with gradle and such, have never really used it and I'd want to test building some kina library-dependency like that (set up a maven repo and such as well)

#

cuz never done that and might be helpful sometime in the future

noble flame
#

so you want to test

tardy granite
#

yes

noble flame
#

integrating with other mods

#

okay

tardy granite
#

no 😭

#

I'd just take code I would have otherwise to write for each event (i.e. twice), write it once, build it as its own modfile and use that as library-mod for the other two mods, which then actually imeplement said events

#

would also add, but didn't have that in mind, that one can choose if they want only one event or both, by just removing jars

noble flame
#

either you're like not wanting to create helper/utility classes in your mod

#

or you want to create a library mod which is gonna be a double download for modrinth

vale pond
# noble flame either you're like not wanting to create helper/utility classes in your mod

The logic is that both of the mods would have the exact same helper/utility classes. Therefore, TheBetterTruth 🍉 would have to copy-paste the code over between the mods. If something broke, they'd have to fix it in two places, which is annoying and prone to error. (source: I've done things that way before, it's really annoying).

Using libraries for substantially duplicated areas across multiple projects isn't point farming; it's good practice.

#

(Also, people can just include the library built in with the mod that's using it, so the users don't have to download it separately)

noble flame
#

but why have two mods unless you want both to work standalone or together

#

i can imagine the easier to update but you're going to have a lot of seemingly random stuff in the project unless you decouple it from the mod being too specific with the implementations

tardy granite
#

I’d make it separate mods (one mod for helper/utility, one for bloodmoon and one for bad sun), „just because“

I‘d know how to code with Java and am fairly familiar with yarn mappings and how Minecraft somewhat works, but I‘m absolutely unfamiliar with gradle, maven and the entire buildsystem. Just to learn it in a practical way, I thought to split this mod, when I‘ll do it. I.e how one would setup a maven repo, especially, so that a mod can be used as library on other mods - never done that and so far, I have no clue about it.

There‘s no way around having utility helpers (otherwise it would be insanity) but I‘d just split it up for the sake of it.

One would then only have that library as dependency mod. The blood moon and bad sun would therefore be two separate mods which would work independently from each other

vale pond
tardy granite
#

^

noble flame
tardy granite
#

Just a heads up, was spending the last days relearning my animation skills (nothing to do with Minecraft modding though)

I have a final exam tomorrow, I‘ll continue working on this after that

tardy granite
#

another heads up, got some gpu-fan problems, Imma look into it for the next few days, otherwise I've gotta live without dgpu

craggy lotus
#

oh thats bad

#

hope you gpu stays alive

tardy granite
#

I've already started to work on the core-library for both mods though

tardy granite
craggy lotus
#

ugh, its a laptop

#

thats bad

tardy granite
#

ya

craggy lotus
#

hope things go well

tardy granite
#

sure will. I mean stuff still works, it's just the fans making noise

#

they still cool and stuff works, but I ain't gonna risk stuff

craggy lotus
#

@tardy granite just fyi, when you manage to resume developement of this (and other of my requests), i decided to switch back to 1.21.1 because, well, all my main mods are only available (or in a stable mode) up to that version

tardy granite
#

Again, just a heads up. Friday, I have my last final exam. I‘ll continue working more full-ish/half time on these mods after that

#

(It‘s math, I‘m bad at maths, I need to learn)

bitter cloud
bitter cloud
bitter cloud
#

I would update to 1.21.5 but more than half of my mods would poof from my modpack because they aren't updated

tardy granite
#

I‘d just be happy to get the min required points to pass

bitter cloud
tardy granite
#

it was kinda obvious that something’s gonna happen

#

it wasn’t because of the questions though, something completely different

craggy lotus
#

omg

tardy granite
#

It's not thai I failed though, at least not passing school, just maths. In every exam I took last week, we had two parts and had three task options for the second part, which ever we'd like. In this math exam we also had two parts and they gave us like three tasks for the second part as well as a form, which we also had in the last exams, where we'd specify which one of the three tasks we did. Now, right after the exam, I found that the form was just there "because" and the second part was split into literal separate "folders", "just because" and we had to do all of them

#

so I just did like only a third of two-thirds of the exam

#

and the only way to pass is to have an average of 5 points in all four exams; so ig it didn't backfire thaat much

#

so, as I'm done with school so far, Imma continue to work on this next week

bitter cloud
tardy granite
#

I just hope that I didn’t fail cuz of my stupidness 😭

#

tbh that would be kind of an iconic fail though

#

but I‘m just kinda, all those problems were even actually easy to solve, but I just didn’t do them, it really bugs me 😭

bitter cloud
#

I hate that too

tardy granite
#

just so that this thread doesn't get lost (it did)

was unexpectedly busy this week, gonna continue upcoming week

craggy lotus
#

any updates @tardy granite?

tardy granite
tardy granite
#

stuff's cookin'

tardy granite
#

I've arrived at the networking stuff

#

and I never liked it

#

nor do I like it now

#

I'm afraid to implement data-tracking the way mojang does, due to mc license stuff and such, but I may just be paranoid

ebon urchin
tardy granite
#

Hmmm may look into that. For now, I'll just go with what I made now

#

still got stuff to implement

#

haven't tested anything yet (bad)

#

but synchronizing events with clients (even when joining into a running event) should work

#

as far as my logic tells, but I'll be testing it tomorrow

#

then I've just gotta implement making use of the AbstractClientEvent class, so that the BloodMoon can tell the sky renderer or whatever I'll have to Mixin and write a custom method for, to provide the appropriate moon texture

#

(just writing stuff down, using this as my to-do list)

tardy granite
#

I think I did some very unnecessary stuff

noble flame
#

erm

craggy lotus
tardy granite
#

and it makes rongorongo

#

they made them deprecated :(

#

I've gotta find other ways to access final static fields, so that I can redirect the moon-texture to the bloodmoon texture

craggy lotus
#

oh

west galleon
#

In modern java even if you find a way to change them, the jvm isn't required to acknowledge you changed them, so it's not really useful to know how

vale pond
#

There can’t be that many of them.

tardy granite
#

would've done that too, but because I'm trying to make this more "dynamic" by design, I've gotta do it this way

west galleon
tardy granite
#

so, we have a bloodmoon

#

but the renderer doesn't quite pickup a texture change

#

although, the texture is re-retrieved each rendercall for the sky

#

it takes quite a while until the changed texture is applied

#

but the event seems to stop/start and change the texture-field as it should

vale pond
#

Unless… maybe the sky model is only rebaked every once in a while? That might do it, actually.

tardy granite
#

and the projectionMatrix's applied to the shader in that same method as well

#

so, should be an update each renderframe

vale pond
#

Hmm...

tardy granite
#

there might be some code in the shader itself though

west galleon
#

-# Caching shader sounds cursed

vale pond
#

I do know someone in the NeoForge server who's looked at sky rendering. I could pass the word along, I guess.

#

If you want me to, that is.

tardy granite
#

I don't mind

#

just tested, renderSky is called each renderframe

#

so the texture should be updated each frame in java code

west galleon
#

Are you updating it on thread?

tardy granite
#

wait

#

does mc use different threads for the game and rendering

vale pond
#

I think so, maybe?

west galleon
#

Yup

#

Well

#

It depends on what you consider the game

tardy granite
#

RenderSystem#recordRenderCall my beloved

west galleon
#

And technically that doesn't guarantee a solution

#

But try it

tardy granite
#

well it worked for the first time

west galleon
#

If it works in single player, then you can figure out where to go from there

tardy granite
#

then it stopped working

tardy granite
#

not sure if my approach's any good

#

but as they say

#

if it's working don't fix it

#

now its just the moon

west galleon
tardy granite
#

well, if I did understand the docs correctly, world.isClient only yields false on the server thread, be it integrated or dedicated, where the event itself is only triggered, if the world it is going to be triggered, is a server world

#

the server then sends a payload to the client, loading dedicated client code and a seperate client event that only runs on the client

#

sure getting the render thread is another thing though

#

as far as I was aware minecraft only used multithreading for chunk loading

west galleon
#

the client == the render thread

#

they aren't separate yet

tardy granite
#

a

west galleon
#

but,

#

it can be more confusing, because before certain versions of mc, packets were on the network thread

#

so just because you sent a packet to the client, didn't mean that you were on the client thread when it was received

tardy granite
#

seems to be

west galleon
#

nice

#

okay

#

how are you updating it?

tardy granite
#

I'm using unsafe to override the value of the field that holds the moon texture atlas id

#

that happens as soon as the event is created (see "Applying moon patch")

#

pausing the debugger and inspecting the WorldRenderer the value changes as it should

#

but in-game the change either just doesn't happen or takes a somewhat long delay

west galleon
#

just write a mixin

#

!!accessor

cosmic nymphBOT
#

io/github/mymod/mixin/MyClassAccess

@Mixin(MyClass.class)
public interface MyClassAccess {
  @Invoker void callAccess();
  @Accessor int getMyField();
}

to use it

public class Container {
  public void slapHaykam(MyClass instance) {
     ((MyClassAccess)instance).callAccess();
  }
}
west galleon
#
@Mixin(MyClass.class)
public interface MyClassAccess {
  @Mutable
  @Accessor 
  static void setMyField(Identifier id);
}
#

that's a very hot code path, and static finals are trusted

tardy granite
#

welp, I'm not using mixins for pretty much a reason - be it good or bad, up to you

#

might try if it works better with one though

#

but kinda found out, that placing a breakpoint on the call that sends the moon texture to the shader, leads to it it applying in-game as well

west galleon
tardy granite
#

ah

west galleon
#

I mean

#

if you don't want to use the mixin to set it

#

you don't have to

#

just create an empty mixin, and mark the shadow mutable

#

and then normal reflection will work

#

-# assuming that mutating a static final is the problem, which it looks like it is

tardy granite
# west galleon what is the reason then?

well, because I'm practically experimenting with public repositories/libraries with this mod, allowing me to "comfortably" reuse the core system for the bloodmoon and bad sun, I thought - I'm not good at thinking - to implement a more "modular"/"dynamic" system; pretty much plug n' play. When using a mixin I would have to check if the event is running or sum other stuff, tell the mixin through the event instance to change the texture id - I'd just use a "plugn n play" system in each event that I tell what to change - and as soon as the event ends it'll automatically reset that value

west galleon
#

I don't think I understand

#

remember that mixin can be incremental too

#

you can literally just use a mixin to ```diff
-private static final Identifier ID = ...;
+private static Identifier ID = ...;

tardy granite
# west galleon I don't think I understand

basically, this weird thing of, lazy messed up code. "Patches" are changes, like this, that happen during an event. They're defined in an event and are executed through said event (be it somewhere in tick or that last method) and are automatically reverted, when the event ends

west galleon
#

yeah, that's going to be a pain to get working

tardy granite
#

yeah figured

vale pond
#

That... may not be the best idea. I'm certain there are better approaches.

west galleon
#

the system isn't bad

#

but you're going to have to make some permanant changes

#

you could use an access widener if you wanted also

vale pond
west galleon
#

I always forget those exist

west galleon
#

they're changing values

#

patching code while it's running is annoyingly hard to do

#

and so slow it's practially not worth it

#

it destroys all faith the jit has in you

tardy granite
#

yeah not planning to do that

west galleon
#

but yeah

#

take any of the options to make the field not final first

#

then using unsafe, safe reflection, any other means you wish

#

make the value change dynamically, but not the finalness

tardy granite
#

ah

#

yeah could try that

vale pond
west galleon
#

I mean

#

the system of having disableable events is cool

#

I would probably implement it different

#

but yeah

#

more mixin isn't a bad thing, you can make most of them conditional anyway

tardy granite
#

removing the final modifier, when not using mixins, for example

#

through reflect

#

I remember having tried that at first before using unsafe

#

but java security and stuff

#

since 17

west galleon
#

you cannot remove the final modifier through reflection

#

you can instruct a reflective object to ignore it on a member that is already not trusted

west galleon
tardy granite
#

alright

#

gotta refresh my reflect knowledge at some point soon

#

mixin it is

#

thanks though

west galleon
#

or aw

#

whichever you prefer

tardy granite
#

welp

#

tried aw, atleast the delay was shorter

#

mixin's the way to go ig

#

still wrapped it in though, to fit the rest of the code-style <3

#

(it's an absolute mess)

#

now gotta work on trying to change spawn rates

#

but I'm afraid of finding them out to be data-driven now

west galleon
#

but not really

#

BiomeModifications exists, so you'll just need to store a reference to the registry manager and preform it dynamically

tardy granite
#

well that's an idea

#

was just about using spawnentries

west galleon
#

that could work?

#

idk

#

it might be better

#

it's been a minute since I did that stuff

tardy granite
#

idk gotta look into it

#

final field's again though

west galleon
#

surely not

#

oh there are lol

#

very final fields

#

but you can set those with reflection

#

they're not trusted

tardy granite
#

is this trusted stuff new java stuff

#

i remember reflect being much less protected back then with java 8

#

the good old days

west galleon
west galleon
#

And thus, you could reflect a lot more

#

Trusted members are eligible for constant promotion, which is where the java runtime takes the GET xField, and replaces it with valueOfXField

#

Which means that the code that uses trusted members runs faster

west galleon
tardy granite
#

makes sense

#

but then, it did update, just unreliably and with delay

west galleon
#

Yup

#

Whenever jit deigned to notice you

#

Breakpoints usually get the attention of jit

#

Because it has to deoptimize just about everything touching them

#

Aside from that, maybe it uninlined it because it found a better way to do it?

#

Or maybe a lambda that was eligible for inlining became ineligible

#

Because it wasn't consistent anymore or something

tardy granite
#

well I dunno

#

as long as it works now

west galleon
#

Yup. Non finals aren't inlined unless they're proven, and even then inlined with a guard

tardy granite
#

Head‘s up, gonna continue tomorrow with this; had an IT oral exam today and I‘m honest, I don‘t wanna have to do anything related to that today 😭

#

but it went alright

tardy granite
#

different education systems I'd say

craggy lotus
#

yep

tardy granite
#

it's not IT in itself though with all that other stuff, but more focused on programming principles etc. like data structures, algorithms and some theoretical stuff

#

but oral, because I had my written exams filled with other subjects

tardy granite
#

Yeah, I guess this doesn‘t want to finish

#

Ran into issues with my laptop again, gotta send it back

#

Can‘t say when I‘ll be able to continue this

craggy lotus
west galleon
#

-# -# tiny text

craggy lotus
#

-# this?

#

oh interesting

honest geode
#

-# weird

#

-# so tiny

tardy granite
#

Alright, passed all exams and laptop's working again, now I've got enough time to continue (and hopefully finish) this

#

it's been taking longer than it should

craggy lotus
craggy lotus
#

🆙 to discord readd this to my list

craggy lotus
#

any updates @tardy granite ?

tardy granite
#

but didn’t do anything more or relevant

#

idk I don’t have any general motivation the past weeks

#

haven‘t done anything really

craggy lotus
#

i hope you get well

west galleon
tardy granite
#

but it’s just generally missing motivation

#

I’m even unmotivated to do anything fun 😭

west galleon
#

I know a guy who did that

tardy granite
#

I haven’t been coding for weeks

#

I meant I have no real motivation to do anything other than just layin around

tardy granite
#

May be because of holiday season and everyone travelling

west galleon
#

Maybe vc some then?

#

Watch others do cool stuff?

tardy granite
#

already watching friends doing stuff

west galleon
#

Sad

#

Okay

#

Maybe it's just a natural break time then

#

We all have them

tardy granite
#

yah

craggy lotus
#

🆙 to see if someone else have interest in pickup up the project

tardy granite
#

ah didn't I meantion it here? even as of rightnow I'm currently at it

#

had rewritten the system the past days

#

to make it less generic-based

#

and more usable

craggy lotus
#

i wonder if the new End Sky flash would add internal features that would mean implementing this would be easier on 1.21.9+

https://www.youtube.com/watch?v=ZMJghyBGeuU

#

If this turns out to be the case, i honestly think it would be better for @tardy granite to wait for that release to resume work

#

to me its okay to wait a little bit more time for this (after so many years without)

thorn gorge
tardy granite
craggy lotus
#

🆙 if someone else wants to pick up the idea for 1.21.10+

craggy lotus
#

🆙, by change @tardy granite did you even returned to this idea?

tardy granite
#

sorry for the long absence

#

uni be eating me

#

but I've got things ordered

#

and gonna continue work on this

craggy lotus
craggy lotus
tardy granite
#

Can‘t look at the codebase rn

#

but haven’t changed anything since

#

Ig somewhere around 1.21.5???

craggy lotus
#

oh i dont remember

#

i'm going to 1.21.11 rn btw

tardy granite
craggy lotus
#

thank you so much

#

hope the changes between those versions didnt give you much headaches

tardy granite
#

In times like this, I wish I had commented my code

craggy lotus
tardy granite
#

just to signalize that I'm still working on this - I HATE NETWORKING

#

but server-client synchronization should be working now

#

and I'll continue making the bloodmoon

tardy granite
#

I noticed

#

I forgot to populate events to joining players

craggy lotus
#

🆙, now that 26.1 is out... i wonder if @tardy granite did any advances with this...

tardy granite
#

changed my environment, now I'm back

#

🫡

#

and if I don't finish this in the coming weeks

#

I don't know what I'm gonna do but I'm gonna do something

craggy lotus
#

crossed fingers here 🤞

tardy granite
#

Currently updating the mod

#

and oh god

#

things are very different

craggy lotus
#

yeah, seems like Mojang changed lots of things

tardy granite
#

yeah

#

especially rendering stuff

#

before it was just a mixin into the worldrenderer and modify the moon texture path

tardy granite
#

got it (again)

#

though, I've gotta work on it some point later on

#

it's using deprecated stuff

#

the other thing was increased mob spawning, right?

craggy lotus
#

and trigger phantoms too (regardless of the sleep cycle of the player(s))

tardy granite
#

I guess I've cheated a bit, but essentially I just made it so that a random number of mobs spawn randomly around a random player, given that they can spawn it that area

#

You also wanted a similiar solar event, right?

craggy lotus
#

the solar event would be a little bit different: no additional spawns, instead any mobs (and players) on direct contact with open sky will catch fire

#

and optionally the player view would forcibily be turned towards the sun (that would have a censor square at front of it)

#

wait a bit that i will show a video of what i meant

#

the sirens arent necessary (a toast message like the one for bloodmoon at the start of the event is enough)

#

from a sighly older build of votv: https://www.youtube.com/watch?v=feNLD6lP0TI

Ouch. My skin hurts.

This is an infamous, very rare (though sometimes scripted depending on the actual calendar date) event. The sun rises... but something's wrong. It hurts. Better bring some SPF 1,000 sunscreen...

From what I can gather, this event is influenced by SCP-001, or at least an earlier iteration of it floating around online. The s...

▶ Play video
tardy granite
#

Quick heads up, been busy with uni this week and got a project that's due to the end of the month: Gonna finish up the sun event and publish the mod then

#

Sorry that it's been so long already, it shouldn't have taken this long 😭

craggy lotus
#

i'm waiting longer for a traincarts-esque mod

#

so no worries