#Undertale Purple

1 messages · Page 2 of 1

sacred depot
#

This looks amazing so far! joyyippee

grand folio
#

works like a charm

grand folio
grand folio
#

scripts can be called by functions

torpid agate
grand folio
#

here is the code though (called in ScriptGroup#update())

var total:Float = 0.0;

function update(elapsed:Float)
{
    total += elapsed;
    trace(total);
}
grand folio
torpid agate
#

What does the codename's fork offer?

grand folio
torpid agate
grand folio
#

I do want to minimize a lot of script calls, so I need a clever way to still have some compiled code be the one doing most of the work

#

there has been a little field in RoomData.hx left unused for over a month now

#

good opportunity to use it now

winged condor
winged condor
# torpid agate parent vars? Explícate

osea pones de parent a playstate y si en playstate hay una var llamada yoqse "algo" en el script en vez de hacer FlxG.state.algo.foo() puedes hacer algo.foo() directamente

torpid agate
#

y se puede tipo algo = otra cosa y se combine con el Playstat?

#

Sorry, eye, for taking the chat off topic.

grand folio
torpid agate
grand folio
grand folio
grand folio
#

not very easy to recreate, i have to compare side-by-side constantly

#

good news is that the editor is atleast robust enough for me to continue tomorrow

grand folio
#

ironically as i say that

#

i forgot to save

torpid agate
#

NOPO

grand folio
grand folio
grand folio
#

one of the more complicated systems :P

#

one of my thoughts is using a neat structure to contain every encounter, having scripts manage the attacks

grand folio
#

[showcase] Posting the build of the latest commit, I will need some feedback for the editors for future purposes

grand folio
#

i don't have any shaders implemented

idle plank
#

okokok

grand folio
#

lemme know your gpu (display adapter), might be helpful in seeing if i can fix this problem

idle plank
torpid agate
idle plank
idle plank
#

oh, its a gl error

grand folio
meager stirrup
cedar arrow
#

😭

grand folio
#

you can actually just do battleCamera.bgColor.alpha = 0; and have a DELTARUNE-styled battle to some capacity

honest tusk
#

Deltarune tomorrow

cedar arrow
#

In 2 days actually

grand folio
cedar arrow
#

Peaktendo Switch 2

grand folio
#

i naturally hate nintendo's legal practices so i don't care about the Switch 2, only Deltarune and Silksong

grand folio
grand folio
grand folio
grand folio
#

each enemy has a script

finite kestrel
#

As in script how do u do that

#

Since

#

You could make a hx for the entitys

#

And then make hx for the entity using the entity hx

#

Idk

grand folio
finite kestrel
#

OMG NO WAY TYSM?!?

grand folio
finite kestrel
#

Ohhhhhhhh

grand folio
#

only changes you'll wanna do is in ScriptPreset.hx, contains some Undertale Purple stuff

#

the files i shared may get outdated quick, i'm constantly updating these in the game

finite kestrel
#

OH OKAY ILL CHANGE IT TYSM AGAIN

grand folio
#

yw

grand folio
grand folio
#

i mean, i tried

#

i'll fix it

torpid agate
grand folio
#

this feels like overengineering, but i've made some helper recursive class for things like "Fight", "Act", "Item", "Mercy", etc

#

in terms of depth, realistically, only 1-2 branches are enough for most things in undertale

grand folio
finite kestrel
#

Crash

grand folio
#

apparently my compiler didn't update the shader file

grand folio
finite kestrel
#

IT WORK

pine thorn
#

Where are you setting the GLSL version?

idle plank
#

it works now

idle plank
grand folio
grand folio
grand folio
idle plank
#

hmmm

#

there is a bug, two events can occur at the same time, which crashes the game. it happened to me that the battle event occurred and at the same time i activated the room change event, which crashed the game

grand folio
#

thanks

idle plank
#

i was in the beginning room

grand folio
idle plank
#

ye

grand folio
#

i feel like this bug could still happen in some form, but right now, code's not mature enough for me to fix bugs so early on, so that should be noted

grand folio
torpid agate
grand folio
torpid agate
grand folio
torpid agate
grand folio
#

in which case, no they're a silent(?) protagonist

torpid agate
grand folio
#

well anyways

#

the text isn't even localized yet

torpid agate
grand folio
torpid agate
grand folio
proper trout
grand folio
#

the soul was using 90 (3 pixels per second in 30 FPS) as its base value

#

the value is now set to 120 (4 pixels per second in 30 FPS)

proper trout
grand folio
#

for the borders

proper trout
#

oki

grand folio
#

i'm getting a clearer idea of how scripts should interact with the battle system, and so for the other systems

grand folio
grand folio
meager sluiceBOT
#

@everyone - b

meager stirrup
#

grass, job applications, showers

#

peak

proper trout
#

the ping ofc

grand folio
severe breach
winged condor
torpid agate
grand folio
#

i never said anything like that

torpid agate
grand folio
torpid agate
proper trout
#

how would u go about getting the needed assets

grand folio
grand folio
#

which allows you to read a data.win file

proper trout
#

can you possibly send the assets of undertale to me,,, i dont have the game in my steam library

grand folio
proper trout
grand folio
proper trout
#

steamunlocked my beloved 🔪

#

i download undertale using steamunlocked

proper trout
#

gulp gulp i did it

#

thank you @/eyedalehim and @/ceroba for inspiring me!!!!

torpid agate
grand folio
#

I'm debating on re-open-sourcing Undertale Purple's code as a WIP Undertale engine in Haxe

#

It's exhausting just doing the programming all on my own, and I would like pointers at some point, and I'll have to dedicate less time for UT Purple at some point

#

As for another sudden rewrite, I think I can safely lock in this one as it's the one with most progress so far

torpid agate
torpid agate
grand folio
grand folio
#

I'm not worried about stealers, the opinion of experts are more valuable to me

torpid agate
#

Okay then open it but remove things that have to do directly with purple

#

Just leave the essentials, let's say

grand folio
#

I don't know why I'm annoyed by this

torpid agate
winged condor
torpid agate
grand folio
#

since i have school tomorrow (Monday), i'm going to try to finish up what isn't related to the attack system

#

fight animation, item healing, damage text, enemy health, etc

#

I'm slumping very hard on the attack system

torpid agate
#

@grand folio how exactly do you make the menus?

#

I did something like a system of submenus and menus

grand folio
torpid agate
grand folio
#

what you are doing is a bit recreating of that behavior

torpid agate
winged condor
grand folio
torpid agate
grand folio
idle plank
#

woooow

grand folio
grand folio
finite kestrel
#

Slowly disappearing from the world

idle plank
grand folio
#

might be a little too late to adopt ECS at the moment

sacred depot
#

ecs?

grand folio
#

i've been obsessing over it and its benefits, but i feel like there's too much to change

grand folio
sacred depot
#

ohh

grand folio
#

I've been liking ECS lately and would definitely fit all my use cases, but I feel like there's a world out there that'd be better if I benefited from ECS later

grand folio
grand folio
sacred depot
#

the way the music stops is too funny for me for some reason

torpid agate
grand folio
#

Damage

grand folio
#

I spent half an hour figuring out why damagePlayer was called twice, only to realize my script was calling it

grand folio
#

At some point, attackScript calls hitPlayer which will eventually call damagePlayer(1) when I'm about to do that

#

resulting in two calls of the same thing

torpid agate
#

ooooooooo

pine thorn
#

I'm replaying Undertale and I noticed the same issue you described in #flixel a while ago (Notice mixels in a part of Frisk's hair and nose). This is also in fullscreen, so maybe it's not an issue with Flixel?

proper trout
#

sometimes i feel like frisk's eyes get a little smaller in height when walking.. kinda off to me???

grand folio
pine thorn
#

I'm on a 1920x1080 monitor

grand folio
#

there's no way

#

Width Scaling: 1920 / 640 = 3
Height Scaling: 1080 / 480 = 2.25

#

if we need fullscreen, we need perfect integer scaling to solve those mixels

#

mixels might only be noticeable vertically but not horizontally, so i believe this may be why

torpid agate
#

black line

grand folio
torpid agate
grand folio
plucky grail
#

@grand folio ik you probably talked about this before, but I'm curious as to how you (plan to) handle dialogue for this game

#

how will you store it?

grand folio
#

it's not that different from how undertale/deltarune gets text for dialogues

plucky grail
#

like a map?

grand folio
#

i store all my dialogue keys and contents in JSON files

plucky grail
#

I got suggested json for dialogue but I decided against it, it seemed a bit too rigid and annoying

grand folio
# plucky grail how's it look?
{
    "battle_generic_check": {"contents": "* Check"},
    "battle_generic_talk": {"contents": "* Talk"},
    "battle_generic_mercy_spare": {"contents": "* Spare"},
    "battle_generic_mercy_flee": {"contents": "* Flee"}
}

-# you can omit {"contents"} here and just have a single string, it's converted to {"contents": string} anyway

#

you can use what feels right for you with dialogue, i made this decision out of immediate requirement

plucky grail
#

fair enough

#

we ended up opting for xml

grand folio
plucky grail
#

funny you should mention renaine because I stole the idea from them

#

lol

grand folio
#

lol

plucky grail
#

still not sure how to format it all

#

although this seems like a good place to start

grand folio
#

i'll add it to the list

plucky grail
#

how I'll do dialogue specific events I'm not sure

#

that's still something I'm not sure on

grand folio
fleet merlin
#

(jk have fun just remember to have a schema)

grand folio
#

i haven't been active due to school but here we implement yellow color if enemies can be spared

idle plank
#

ou yeah

grand folio
grand folio
winged condor
sacred depot
#
  • You crashed the game.
grand folio
#

[showcase]

#

[showcase]

idle plank
#

lol

winged condor
#

macro?

grand folio
#

it's a build script

subtle iris
#

is it okay if i use this

grand folio
subtle iris
#

thank

idle plank
#

ewe

grand folio
#

i'm prepared to lose my sanity (again)

torpid agate
# grand folio

Ohh, I made one, need help? I'm literally kind of good at parsing commands because of discord bots skslsk

grand folio
torpid agate
#

I made one with everything and description and search for the name

idle plank
#

toby fox just released a page that lets you express how undertale changed your life, its for the 10th anniversary

sacred depot
#

yee I posted mine

idle plank
#

👍

grand folio
#

i don't have my laptop, so i have another laptop, which is my father's laptop

#

but i refuse to install any VSC on it

#

too lazy

idle plank
grand folio
#

where my 2FA don't work

idle plank
#

sheeesh

grand folio
#

now i have to wait for my laptop

#

to get fixed

idle plank
#

👍

grand folio
subtle iris
#

nice

torpid agate
#

it seems very cool but

#

why?

grand folio
#

to display stats stuff

torpid agate
grand folio
#

sure

torpid agate
#

more different to deltarune I mean

grand folio
#

i could always say "mana" but does feel different

torpid agate
torpid agate
grand folio
#

maybe i like being different

#

i think "SP" only uncreative, to me

torpid agate
torpid agate
#

I just call it that to put it next to the health bar

idle plank
torpid agate
#

@grand folio I see it something like this:

grand folio
#

i'm trying not to change the idea since i want to lock it in for ut purple and think about feedback later

torpid agate
grand folio
#

my idea is to have the mana bar be placed where TP bar is in deltarune

#

i don't really want to have people to re-learn the UI again and for returning players, they have to come back and get used to it again

torpid agate
#

@grand folio something like this

#

?

#

OH I FORGOT THAT TP BAR IS ON LEFT

#

its

grand folio
#

yeah it should be on the left

#

though i'd probably simplify the design

#

since i need that undertale feel

torpid agate
grand folio
#

i'd decide the design myself anyway, but something like that

torpid agate
#

Sorry if I insist too much, I like to imagine it

grand folio
#

don't give me ideas, i'm to o slow

torpid agate
#

It's okii

plucky grail
plucky grail
#

feels too fangamey

grand folio
#

we are making an undertale fangame

plucky grail
#

ehhh it's hard to say how it makes me feel without saying it like that

grand folio
#

i dislike the notion that an undertale fangame is restricted to have to be like undertale

plucky grail
#

I guess it feels more like

grand folio
#

limits creativity and puts pressure on me to have to come up with something

plucky grail
#

it's trying way too hard

#

to look seamless

#

idk that's just what I think

grand folio
#

i don't think "this feels like an undertale fangame" will hardly change my direction at all

#

i haven't even released an undertale project yet to actually get proper feedback

#

or know what it's like

#

which is why i'm mostly listening to my own experiences and interpretations of feedback from undertale

torpid agate
plucky grail
#

I'm jus saying what's on my mind

grand folio
grand folio
#

item usage in overworld

severe breach
idle plank
#

%1, the most iconic object of undertale

proper trout
#

it isnt honestly

grand folio
proper trout
#

what happens if i do

grand folio
#

water cooler

proper trout
#

i can just alt f4 out of the game

#

easy

grand folio
#

Your plan falls apart when you have to face the water cooler again

proper trout
#

alt f4

grand folio
proper trout
#

why call me that lol

grand folio
#

Maybe I shouldn't be telling you

#

I have the high ground in this conversation

proper trout
#

does it have to do something with me disrespecting the %1

idle plank
proper trout
idle plank
#

...

proper trout
idle plank
#

||joke||

proper trout
#

ok

#

let me tell you one thing

idle plank
#

XD

proper trout
#

%1 is-

#

better now

idle plank
#

:D

proper trout
#

over %1?

#

just asking

grand folio
proper trout
idle plank
#

||%1 be like||

proper trout
#

oh i need to know what makes it so amazingggg

idle plank
#

hes so epic like rigby cat pee gif

grand folio
#

i made an oopsies and put in %1 instead of %2

grand folio
#

assets/data/dialogue/items/info/item_of_nothing.json

[
    {
        "type": "text",
        "keyForText": "items_info_item_of_nothing"
    }
]
grand folio
grand folio
grand folio
#

Version - 1.0.0
Author - EyeDaleHim
Name - Undertale Purple
Build - 602
Build compile date - 2025-08-26 16:04:08

Git Hash - 8f0b573048e079d7839626e020d1c5169271faea

grand folio
torpid agate
#

isn't better just "Auto Run"?

#

Or what it is

tiny folio
#

just to be sure

#

this has his own tile mapper right?

grand folio
tiny folio
grand folio
grand folio
#

dumping textures

grand folio
#

might be going insane with some layout code

#

With debug boxes, you can see that each "invisible" object is a Layout

#

I've took some inspiration from CSS flexbox mathematical rules here

sacred depot
#

Ooo

grand folio
sacred depot
#

oh damn

grand folio
#

Some similar stuff done on the main menu

grand folio
#

I'm looking forward to partially replace HScript with somewhat of a very non-reflective scripting class that can just always assume it's working within the game and not having to track sophisticated classes

#

I was unsure if I needed HScript to have that much power

#

But I'll lovely have it as a backup alternative

sacred depot
#

neat

grand folio
#

My criticism of this right now is that arguments are rigid and linear

#
// c:\GitHub\Undertale-Purple\source\backend\module\Module.hx

// ...
var definition = master.taskRegistry.get(taskName);
// ...
var taskArguments = parts.slice(1);

if (taskArguments.length > definition.arguments.length) 
// ...

var parsedArgs:Array<Dynamic> = [];
for (i in 0...definition.arguments.length)
{
    var argDef = definition.arguments[i];
    // ... parsing logic based on the fixed list in definition.arguments
}
// ...
#

I'm thinking of a decision tree, feels like a better way to parse arguments

grand folio
#
# Definition

A module is a text file with the extension `.module`. Function files are part of the hammer directory structure, highlighted:

assets/
    data/
    ├───hammer/
    │   └───modules/
        │   ├───module1.module
        │   ├───module2.module
        │   └───...

As with other files, the `modules` folder may also contain subfolders that can be used to organize modules. These subfolders must be referenced when invoking the module.

Within the `.module` file, one valid task is placed per line.

Comments can be added by starting a line with `//`.

A single backslash as the last non-whitespace character on a line indicates that the next line is a continuation of the current line.

# Invocations
Modules can be invoked in different manners.

## Invocation from modules
Modules can be invoked by other `.module` files. It is optional to add the extension.


call "test/test1"

#

writing docs

grand folio
wise crane
#

wait wha-

#

that is insane

grand folio
#
say "Hello World"
call module2
$all[tag="player"] say "Found player"

Entity filtering work

grand folio
#

Having a hard time... I'll probably have to scrap this current iteration and think of a new DSL

grand folio
#

🤔

// Calls module2.module in the same directory, using the current Master's context
call module:module2

// Calls module4.module in a subdirectory, passing a context variable 'damage'
call module:subdirectory/subdirectory2/module4 context:{ damage:15 }
wise crane
#

what does the module: prefix

#

there are more prefixes?

grand folio
wise crane
#

👍

grand folio
#

There is the possibility of no longer using this thread since I've been exploring Kotlin these past few days

#

It's not absolute that I'm porting this project to Kotlin now but it's a possibility in the future