#Archipelagoon

1 messages · Page 2 of 1

dawn acorn
#

Wait custom text is big!

earnest lion
#

lmao

#

what are you doing down there

#

i want to scale it down a little bit, but hey i can override its position

#

neat

#

closer

#

just peekin, checking in

dusty gull
#

You can do it lil guy

earnest lion
#

when he isn't in the way, hes aight

#

bit massive

earnest lion
#

fun fact

#

if you create a yaml with chapter 1 goal, turn off shopsanity, turn off addition randomization.

you get 21 locations

#

💀

earnest lion
#

for reference, there are 385 total locations currently available with the various settings enabled lol

analog coyote
#

Is it safe to have legends of tide mod on as well?

dusty gull
#

Should be

earnest lion
#

We'll find out

analog coyote
#

I truly love this game sometimes

dawn acorn
flint folio
#

Dart gets asked what he's doing with that horse... says "yoink!" and makes a run for it.

#

wait is archipelagoon editing where sprites and chars show up??

earnest lion
#

Not intentionally

dusty gull
#

Can't see how it would be

earnest lion
#

Same lol

glossy vault
#

can report doing valley and gigantos before first visit is currently making me go through the first castle visit then I can fight Lenus

#

so after going to sleep at the end of the first visit it will start the 2nd visit with the Lenus fight immidiately

earnest lion
#

nice and rested

icy vortex
#

Ya i can also add that if you break it like I did and never talk to Festus in the first place and then teleport into the main room you fight Lenus immediately but then for some reason still have to do first day after that

#

But I completely broke it and wanted to keep it to myself

#

Had to teleport since I had no other way into castle

earnest lion
#

well

#

hey, textbox? yeah that isn't how i wanted this to happen LOL

#

i'm trying to play around with the gigantic spacing on this textbox and I'll be putting up a PR to just remove some of the magical numbers

#

and make them make sense (after i figure out what the fuck is happening)

earnest lion
#

this is fine

icy vortex
#

Close enough

dusty gull
#

Who needs a box anyway

earnest lion
#

@dusty gull is the background image scalable? or is it just that size

dusty gull
#

You'd have to build your own glyphs if you wanna resize it

#

Fortunately for you I built a glyph editor

#

Unfortunately for you, you have to perform an arcane ritual to use it

flint folio
#

Achipelagooning.

earnest lion
#

:3

earnest lion
#

ok figured out the centering

#

ish

dusty gull
earnest lion
#

@dusty gull i'll be submitting a PR with some variable names to make this more readable

#

less magic numbers

dusty gull
#

Okay

dusty gull
#

I'd prefer to see type_15 get changed to MessageBoxType insead of an int

#

Don't see any reason to do a partial conversion

earnest lion
#

makes sense, I wasn't sure if type_15 needed to be an int. much easier to just make it an enum

#
    setMessageBoxText(this.messageBox_8011dc90, TAKE_RESPONSES[ThreadLocalRandom.current().nextInt(TAKE_RESPONSES.length)], 0x1);```
#

not sure what type 1 is lol

#

mr. dabas

dusty gull
#

Pop a box with type 1, see what it does

earnest lion
#

looks like an alert

#

so 0 and 1 are similar?

dusty gull
#

Could be

earnest lion
#

interesting...

#

looks like the only difference is that 0 does ```if(messageBox.type_15 == MessageBoxType.ALERT.type) {
//LAB_8010eed8
if(!messageBox.ignoreInput && PLATFORM.isActionPressed(INPUT_ACTION_MENU_CONFIRM.get()) || PLATFORM.isActionPressed(INPUT_ACTION_MENU_BACK.get())) {
playMenuSound(2);
messageBox.state_0c = 4;
messageBox.result = MessageBoxResult.YES;
}

      break;
    }```
#

returns a result me thinks

dusty gull
#

Does 1 not close?

earnest lion
#

1 closes the same

dusty gull
#

It looks like the input handlers only do stuff for types 0 and 2?

earnest lion
#

lmao

#

it becomes extra cursed

#

but yeah it can't close

#

though the glyph can be unrendered

dusty gull
#

Just call it unknown

earnest lion
#

Ok updated 👍

dusty gull
#

Move unknown in between so we can keep the ordinals the same as retail and add a doc to each that says which retail value they map to, everything else looks good

#

Gonna go for a walk so I'll merge later, will probably need to update the fishing mod

earnest lion
#

sounds good, enjoy nature

#

figured out centering (sort of)

earnest lion
#

multi lines feels better now

earnest lion
#

@dusty gull i've decided to hate myself early this year and start working on chests. Should I add a new method into Scus94491BpeSegment.java or a different file for something that calls postEvent

dusty gull
#

I'd like you to draft up a plan for dealing with chests first so we can review it if you don't mind

earnest lion
#

can do

dusty gull
#

I'm on board, just wanna make sure we think this through

earnest lion
#

lemme createa doc

dusty gull
#

Sounds good

earnest lion
#

I will be eating, but will continue to work on this doc

#

I'm not good at this thing, but its nice practice

dusty gull
#

The way I see it, we have two options

#

We can either patch Dart's script in every map with a chest, or find some way to identify that Dart is interacting with a chest

#

And what item it should be giving him

#

The first option would be safer

#

The second option may or may not be less work

earnest lion
#

The chest in seles handles its state and what item is given, so wouldn't it be patching that script rather than dart?

dusty gull
#

Depends on whether or not all the chests are like that

#

Normally interactions are all handled in Dart's script

#

I dunno if that applies to chests or not

earnest lion
#

🙈

dusty gull
#

Most NPC scripts are dead simple and do almost nothing

#

A lot have dialogue in them that isn't actually used

#

Playing Halo so I won't be super responsive atm

earnest lion
#

I'm making dinner so same

#

But for now I'm basing the doc off the first chest

#

I'll check a few more to see the similarities

latent adder
#

Scripts will have to be touched, the case is to make it efficient for the first time.

Patch all the scripts (dart(s) or submap scripts) with chests with a generic interactable callback (that might be used for other backwards compatibility interactables later).

Register these interactables in a registry in java land. Can be chest, stardust, dialogue concrete types or a generic type that parses the list of supported types out for you and triggers the right event. Can also support state and link to a list (registry of story flags) of submap or wmap flags.

Data can default to whatever is in the registry or override by mod events or defer to script controlled.

Interactable in script needs position, radius, onHandled, type of event and/or registry id, story flags support.

Then patch wherever this interactablele script system should live to create new or modify interactables.


Can also do the inverse. If state is not in shop, not in wmap, not in battle, no shop, no menu...and dart receives an item, then it must be from an interactable like a chest. Can then do hardcoded checks to verify submap, chest, and do give Item event and manually manage any overrides of the script behaviour. Not sure how textboxes would be blocked as the chests all use different indices in the textbox stack.

#

I think any solution is a massive undertaking though

#

Dialogue can give any inventoryentry, story flag, or meta things like warping / coolon / game data changes. Or chests, or whatever we define as an interactable.

#

Wonder if its easier to remove all interactables in all scripts. Then extend script system to work more generically via a standard interaction submap script we add to every submap (all interactions in one script or a means of adding n 'interaction scripts' and attaching those to any submap).

#

Then if we change something with the interaction script it can patch everything automatically / migrate.

#

Or just support versions nginx and only load scripts which r supported.

latent adder
#

Disregarding a) removal (largely manual), b) underlying submap scripts checking for interaction script(s) (maybe automatable?), c) generating list of interactions and what they all do, there is still d) with every sc dev contributing 20-30 copy pasted interaction scripts a day, that's still ?3 weeks on its own?

#

For what it is, the main life blood of the game, its justifiable but in practice idk if its viable

dusty gull
#

In an ideal world we can detect interactables using a pattern and generate the patches

earnest lion
#

I'm more interested in "how to brute force" because once we establish that, we can refine

#

I do like the idea of a generic interactable script + interactable registry

untold kraken
#

Hmmm lemme check. I was certain I used the latest

earnest lion
#

I believe you, I just want to gather facts 🙂

untold kraken
earnest lion
#

Yup! Great!

#

I should have a new version soon that we can try

#

But, it's very odd shops aren't working

#

Did your other checks send

untold kraken
#

Indeed! When I sent the crash log I was able to see the AP items but upon fresh install it says there's nothing to buy. The first check did send. After defeating the Commander

earnest lion
#

Nothing to buy means when I scouted locations on connection it didn't persist those

untold kraken
#

Hmm maybe not that's the only check I sent

earnest lion
#

Ughh

#

Ill have to dive into it tomorrow

#

Are you the host

untold kraken
#

I'll test a solo run just in case. Not sure if that can help

#

No

earnest lion
#

Ok. Yeah if it works solo, I know how to fix it

untold kraken
#

I'll do it right away

earnest lion
#

We write perfect code

#

Until we don't

dusty gull
#

Who are we to define perfection, Psi?

earnest lion
#

Too true

untold kraken
#

Alright so here's what was sent and the shop does have items in it but it crashes as soon as I press confirm to buy one

[2026-03-02 01:34:19,585]: Notice (Player Kairi_LoD in team 1): Now that you are connected, you can use !help to list commands to run via the server. If your client supports it, you may have additional local commands you can list with /help.
[2026-03-02 01:37:05,133]: (Team #1) Kairi_LoD sent Dart Double Slash to Kairi_LoD (Commander)
[2026-03-02 01:37:06,175]: (Team #1) Kairi_LoD sent Leather Jacket to Kairi_LoD (Dart - Volcano Unlock)
[2026-03-02 01:38:05,600]: Notice (all): Kairi_LoD (Team #1) has left the game. Client(0.6.1), [].```
dusty gull
#

Send the crash log as well

untold kraken
#

Just from the part it says error right ?

dusty gull
#

The whole end of the log where it says to send it to us

untold kraken
dusty gull
#

@earnest lion you need to update your mod since you changed how message boxes work

earnest lion
#

I haven't merged those changes quite yet

#

But I should soon

#

OH

#

right

#

those changes

#

curses

#

i've done it again

earnest lion
#

I've fixed it! but i have other changes so i need to get progressive additions added before i make a new version lol

earnest lion
#

@dusty gull i'm trying to resolve an issue with icons not rendering in shops, but no console errors are occurring 🤔

dusty gull
#

Is it your own shop extension?

earnest lion
#

yeah

#

it was working prior

dusty gull
#

Okay well first question, are you rendering icons?

earnest lion
#

but i'm not sure what changed

#
  public void onRender(final RenderEvent event) {

    if(APIconUiType._ICONS.obj == null) {
      APIconUiType._ICONS.obj = buildUiRenderable(APIconUiType._ICONS, "AP icons");
    }

    final APContext ctx = APContext.getContext();
    ctx.renderMessage();
  }```
#

I believe so?

dusty gull
#

Is your obj marked as persistent so the engine doesn't yeet it when the engine state changes?

earnest lion
#

good question

dusty gull
#

It has gpu memory leak detection

earnest lion
#

where can i tell that?

dusty gull
#

.persistent

earnest lion
#

i am not finding anything like that

dusty gull
#

Just breaking in your icon rendering method and check that obj's persistent property

earnest lion
#

persistent: false

dusty gull
#

What about .deleted

earnest lion
#

also false

dusty gull
#

Well it hasn't been yote then

#

But no icons?

earnest lion
#

ah, when i get to the shop itself

#

deleted = true

dusty gull
#

Well, that'd do it

earnest lion
#

is this a recent change?

dusty gull
#

No

earnest lion
#

interesting

#

ok so i set the persistent to true and the icons are still not rendering, which leads me to think its something more obv

dusty gull
#

Is it no longer showing deleted?

earnest lion
#

correct deleted: false

dusty gull
#

Bisect and find which commit broke it

earnest lion
#
2026-03-02 15:48:26.957 [Hardware legend.core.opengl.Obj:53] WARN : Leaked: UI d2d8
2026-03-02 15:48:26.957 [Hardware legend.core.opengl.Obj:53] WARN : Leaked: UI Portraits
2026-03-02 15:48:26.957 [Hardware legend.core.opengl.Obj:53] WARN : Leaked: UI Item Icons
2026-03-02 15:48:26.957 [Hardware legend.core.opengl.Obj:53] WARN : Leaked: UI Elements```
#

probably unrelated?

#

the portaits are all weird colors

dusty gull
#

Ah, that's because of rendering two menustacks

#

MenuStack currently calls uploadRenderables()

#

So all of the renderables are getting rendered twice

earnest lion
#

oh

#

hmm

#

ok so loading up old code works just fine

#

which means it might be related to menuStack

dusty gull
#

Lemme think about what I want to do here

earnest lion
#

ah yep, the double render is what broke the shops

dusty gull
#

I can move that so it's always called in the gameloop but we'll have to make sure that menus aren't leaving renderables in the queue

#

Would you mind moving this into gameLoop just before loadAndRenderMenus() and mess around to see if it breaks anything?

earnest lion
#

sure!

#

well this one is on me

#

but moving the method seems to work fine atm

#

no weird colors, shops work fine

#

settings in and out of combat too

dusty gull
#

Opening and closing menus, post-battle stuff, none of it leaks into anything else?

earnest lion
#

my messages do, but thats a me issue

#

I haven't noticed anything abnormal

#

with SC

#

not sure what that lil' guy is about

#

only appears when i select "quit" from in game

#

goes away when i go to other screens

#

(was there before this change too)

dusty gull
#

Those look like the colons for the time on the main menu

earnest lion
#

oo

#

yep

dusty gull
#

So those clearly aren't being deallocated

earnest lion
#

who are we to stop them (engineers. we are engineers)

#

sick, i'm going to release a new version of archipelagoon shortly

#

well maybe i'll fix that settings page

icy vortex
#

This is just going to be a QoL + zenabatos release right

earnest lion
#

adds progressive additions, fixes "off" on addition randomizations, and resolves some other issues with shops

#

on newest sc anyway, courtesy of yours truly

icy vortex
#

Adds a new shop too?

earnest lion
#

...was that this one?

#

i thought i did that in 1.2

#

er, 1.2/1.6

icy vortex
#

Oh maybe you did im locked behind Magic Oil in Sens Fortress was going to beat Quelagg tonight

#

If the website works for me

#

And I dont have to wait for DNS

earnest lion
#

website is back up, and you just gotta flushdns

#

supposedly

#

can i type?

icy vortex
#

Close enough

#

Im still at work im just hoping its automatic but I doubt it

#

I might do a small solo to the side to test progressive additions if no one else does first

earnest lion
#

might be related to the render change

dusty gull
#

Try putting it after the line I told you to

#

Instead of before

earnest lion
#

nice

#

looks like the issue i'm having with the in-combat archipelago config is that its a VerticalLayoutScreen

#

🤔

#

xD

#

the difference seems like background vs panel

#

so maybe I have two screens, one for regular menu, one for combat

dusty gull
#

You might just need to adjust your control z values

earnest lion
#

absolutely, i'm just utilizing the VerticalLayoutScreen's method atm

#

er

#

yeah definitely

earnest lion
#

well, thats not what i meant to do

#

is there not a way to auto detect if I need a background or a paneL/

dusty gull
#

Define need

earnest lion
#

I would like to use the same options screen for both in and out of combat

#

but it seems like combat prefers panels, and out-of-combat prefers backgrounds

dusty gull
#

Use a constructor param

earnest lion
#

yes, but how can I know if i'm in combat?

dusty gull
#

You could check the current engine state

#

It's not ideal but it should work

#

Forgot you weren't the one popping the screen

earnest lion
#

i'm just that cool

#

ok let me try that

#

yup!

#

gotta fix the indices

#
      this.panel = Panel.panel();
      this.panel.setPos(12, 20);
      this.panel.setSize(296, 140);
      this.panel.setZ(36);
      this.addControl(this.panel);
    } else {
      this.addControl(new Background());
    }```
dusty gull
#

Getting there

#

FYI you can use screen.getWidth()

#

Real menus are 368 wide

#

Battle is 320

earnest lion
#

ayy

#

now mr. turn order

#

though this seems to be an issue with the turn order being lower than the menus

dusty gull
#

If it's on top of the others then yes

earnest lion
#

menu is 35, turn order 30, tooltip 1

#

they are shy and the uibox is trying to help them out

dusty gull
#

Hahaha, close

earnest lion
#

UiBox divides its setZ value by 4.0 lol

#
    this.textbox.z_0c = z / 4.0f;
    this.updateSize();
  }```
dusty gull
#

For text

#

It's complicated

earnest lion
#

i imagine so

#

z-index values can be so wild

#

i'm a frontend dev

#

no shade

#

in this instance, i took the Zindex that was set on the text, multiplied by 4, and added 1

#

that way it works similarly to other screens

#

(minus the *4 part)

dusty gull
#

Text z is 1/4 the ui z for legacy reasons

#

Oh actually ui might also uses the 1/4 z

#

Oh that's uibox, it doesn't use 1/4

#

So the Z values are similar to Z index in web dev, except these are actually physical depth into the scene

#

The PS1 doesn't have a depth buffer, it can't do any pixel sorting

#

So the GPU has something called a depth queue

#

The PS1 GPU also is only 2D, it does not render 3D, that's a very important distinction

#

It receives triangles that have already been projected from 3D -> 2D using the geometry transformation engine, which is another piece of hardware

#

These triangles are queued at their average depth

#

You have one queue for every possible depth in the scene

#

But, because of that, the sorting tables could take up a lot of ram

#

So there's a sorting table factor that shifts down the Z depth to decide the number of sorting tables at the cost of precision

#

LOD uses a shift factor of 2, which is 1/4

#

SC mostly uses full resolution Z but some of the UI stuff still uses the legacy shifted values

#

So you have some stuff like UiBox which uses the full Z value but it renders text using the 1/4 Z value hence the division

earnest lion
#

thats crazy

dusty gull
#

120 depth UI box is equivalent to 30 depth text

earnest lion
#

is that something you learned on this project?

dusty gull
#

I learned everything that I know about the PS1 from this project

#

But I'm the one that unshifted most of the Z values

#

Almost everything uses unshifted values now, but there's some legacy stuff that's complicated to untangle, I think it's just the screen/control stuff and text

earnest lion
#

is there anything you'd want me to do as a part of this change?

dusty gull
#

What exactly are you changing?

earnest lion
#

i extracted some logic into helper methods to help readability, but the change I'm applying is making the zIndex be more accurate to "what needs to happen"

textZ_800bdf00 gets changed to 30, so i set it to 40 (to render below other menus) and set the Z of the UiBox to (textZ_800bdf00 *4) + 1

#

i can draft a PR rq

#

does bent stand for battle entity

#

am i cracking the code

dusty gull
#

Yes lol

earnest lion
#

that makes getBent even funnier

#

holy shit

#

Ok I put up two separate PRs for the things

#

no rush on them at all

dusty gull
#

I'll take a look at it tomorrow

#

Just had a very quick glance

// for whatever reason, UiBox divdes Z by 4.0
It's actually the text Z that's divided by 4, UiBox uses the full res Z

earnest lion
#

oh I see

#

let me remove that comment too lol

#

i added that for my sanity while investigating

#

riight and it scales down to match

earnest lion
#

Probably going to sit down and continue planning the chest script run

dusty gull
#

I'll be up for a little bit longer if you have any questions

earnest lion
#

well i do but i'm raiding currently

#

lol

#

big thing is to think on what @latent adder suggested earlier

dusty gull
#

Whatever we decide, we need to be able to automate it

#

Patching that many scripts using the diff patcher is a no go

earnest lion
#

ok, with that as a requirement, i'm assuming we'd need to know what to look for

dusty gull
#

Yeah, identifying is the only real unknown here

earnest lion
#

gotcha. I'll grab some sample scripts of some chests early, mid, late and we can see how they do their things

dusty gull
#

Sounds good

earnest lion
#

i'll also grab the fort after hoax

earnest lion
#

seles, hellena, and black castle have similar structure, but the marshland fort after hoax is structured slightly differently but thats to be expected with all its additional logic

dusty gull
#

@earnest lion step one is gonna be listing every single chest script in the game, I believe your lackeys have already started this

#

We need that so we can make sure our automated script finder is finding all of them

#

From the script you included in that doc, it looks like call Scus94491BpeSegment::scriptGiveChestContents is the third op in entrypoint 1

#

So we'd want to see if that holds true for all of them

earnest lion
#

Ill need to check Shirley trap chests too

#

Just in case

dusty gull
#

Okay

dusty gull
#

@earnest lion

  private static ResolvedValue parseParamValue(final State state, final ParameterType param) {
    final ResolvedValue value = switch(param) {
      case IMMEDIATE -> ResolvedValue.of(state.currentWord());
      case NEXT_IMMEDIATE -> ResolvedValue.of(state.wordAt(state.currentOffset() + 4));
      case INLINE_1, INLINE_2, INLINE_TABLE_1, INLINE_TABLE_3 -> ResolvedValue.of(state.headerOffset() + (short)state.currentWord() * 0x4);
      case INLINE_TABLE_2, INLINE_TABLE_4 -> ResolvedValue.of(state.headerOffset() + 0x4);
      case INLINE_3 -> ResolvedValue.of(state.headerOffset() + ((short)state.currentWord() + state.param2()) * 4);
      default -> ResolvedValue.unresolved();
    };

    state.advance(param.getWidth(state));
    return value;
  }

  public static void main(final String[] args) {
    for(int i = 0; i < 800; i += 3) {
      final Path scriptDir = Path.of("files/SECT/DRGN21.BIN/" + i);

      if(Files.isDirectory(scriptDir)) {
        try(final Stream<Path> scriptPaths = Files.walk(scriptDir)) {
          scriptPaths.forEach(scriptPath -> {
            try {
              if(scriptPath.equals(scriptDir) || scriptPath.endsWith("mrg")) {
                return;
              }

//              LOGGER.info("Checking script %s", scriptPath);

              final FileData scriptData = new FileData(Files.readAllBytes(scriptPath));

              if(scriptData.size() < 8) {
                return;
              }

              final int entrypoint1 = scriptData.readInt(0x4);

              if(entrypoint1 >= scriptData.size() - 3 || (entrypoint1 & 0x3) != 0) {
//                LOGGER.error("Entrypoint 1 out of bounds in script %s", scriptPath);
                return;
              }

              final State state = new State(scriptData.getBytes());
              state.jump(entrypoint1);
              for(int checkedOps = 0; checkedOps < 3 && state.hasMore(); checkedOps++) {
                final int commandOpcode = state.currentWord();
                state.advance();

                final OpType op = OpType.byOpcode(commandOpcode & 0xff);
                final int paramCount = commandOpcode >>> 8 & 0xff;
                final int opParam = commandOpcode >>> 16;

                final ResolvedValue[] params = new ResolvedValue[paramCount];

                for(int paramIndex = 0; paramIndex < paramCount; paramIndex++) {
                  final ParameterType paramType = ParameterType.byOpcode(state.paramType());
                  params[paramIndex] = parseParamValue(state, paramType);
                }

                if(op == OpType.CALL && opParam == 864) {
                  final int itemId = params[0].orElse(0);

                  if(itemId == 0xfb) {
                    LOGGER.info("%s -> gold 20", scriptPath);
                  } else if(itemId == 0xfc) {
                    LOGGER.info("%s -> gold 50", scriptPath);
                  } else if(itemId == 0xfd) {
                    LOGGER.info("%s -> gold 100", scriptPath);
                  } else if(itemId == 0xfe) {
                    LOGGER.info("%s -> gold 200", scriptPath);
                  } else if(itemId < 192) {
                    LOGGER.info("%s -> equipment %s", scriptPath, LodMod.EQUIPMENT_IDS[itemId]);
                  } else {
                    LOGGER.info("%s -> item %s", scriptPath, LodMod.ITEM_IDS[itemId - 192]);
                  }
                }
              }
            } catch(final Throwable t) {
              LOGGER.error("Failed to read " + scriptPath, t);
            }
          });
        } catch(final IOException e) {
          throw new RuntimeException(e);
        }
      }
    }
  }
sullen finch
#

Hey guys, sorry for the mad noob question but... Is there a setup guide for this? :v
Also, does this work with other games like usual? Like, I played an Ocarina of Time, Donkey Kong Country 3 & Super Mario World Archipelago game, all cross-randomized. Would this work for those? I assume yes, but I might be wrong

icy vortex
#

Yes as long as those were done through the archipelago launcher or the website you can do it. Do you have the launcher?

#

To start

sullen finch
icy vortex
#

As long as you know archipelago basics to generate and yaml stuff its just a step or 2

sullen finch
#

Ayyy that's what I was looking for, thank you!

Well, I'll have to check with my brother (he set it up) but this might get us served. Thanks a lot! :D

earnest lion
#

If you run into issues, please bring them up

sullen finch
#

Will do, thanks!

earnest lion
#

That way I can provide better information:)

sullen finch
icy vortex
#

Youll need the newest Severed Chains

#

1341 is ancient

sullen finch
#

Thanks. I though the CMD saying "Looking for updates" would cover that :v

icy vortex
#

Not sure i just download the newest one and extract over the old one every week ish anyways

#

But for archipelago basically every run you do if you do multiple it wont hurt to keep SC updated

#

And youll need to for big gaps like that

sullen finch
icy vortex
#

It doesnt mess with saves or mods folder

#

So I just go directly over it and hit replace all files when it asks

#

It shouldnt affect anything

sullen finch
#

Booting it up now

#

Alright, there it is. Thanks for the update check!
Will tell if I find anything off... Also, is 1565 the current?

icy vortex
#

I think that's current new enough at least. The main website that has the github repository should always link to the newest

#

Youll connect in game. And the shop/equipment might not have the little icons, and the pictures of the people are green otherwise no issues (that ive found)

dusty gull
#

You'll see an update notification on the title screen if one is available

earnest lion
earnest lion
#

@dusty gull chests are about halfway done being catalogued w/ the submap ids. I will check tomorrow all the chapter 1 chests

dusty gull
#

Nice

#

Let me know if there are any discrepancies between the manual list and the automatic list

earnest lion
#

will do, there are a few chests that don't have the typical features (trap chests, bogey chests on phantom ship) but those are fewer lol

sullen finch
#

... Guys

#

The Yaml file said it needed Archipelago 0.6.7, but the latest version seemed to be 0.6.6... So we changed that part of the Yaml file to say "Needs 0.6.6" and it worked XD

#

Unless we missed something and it won't work in the end :v

icy vortex
#

Yup that'll work

#

If you run into another issue just keep asking its better to fix all bugs and confusion ASAP for the future 🫡

earnest lion
earnest lion
#

in the archipelago launcher, you can go to "Tool"

#

it'll work with any installed APWorld 🙂

sullen finch
#

Guys, has anyone here had errors like
"[Win Error 1225] Remote device rejected connection. Connection refused by the server. May not be running Archipelago on that address or port"
?

earnest lion
#

what is the address you are trying to connect to

#

typically you'll want to have archipelago.gg:XXXXX

sullen finch
#

38281 where the Xs are

earnest lion
#

can you send a screen of the input

sullen finch
earnest lion
#

Ah, you are connecting to the wrong host

#

Looks like it's that IP address on the left

sullen finch
#

So what do we have to type to connect?

#

We tried "/connect 179.60.64.24:38281" and it says "Failed to connect to the multiworld server"

#

On my end it throws this

earnest lion
#

Try to add a slot, but i'm not sure if your ports are forwarded

#

179.60.64.21:38281

#

not 24

#

21

icy vortex
#

Btw for future reference you dont need to localhost even for custom games unless you really want to

sullen finch
# earnest lion 21

Thanks, but didn't work, with and without slot numbers. I tried 4 different slot numbers just to be sure

#

Wait, we may've missed a step

#

Yeah, it's working now, all this was a missed step XD

#

Sorry for bothering you guys, but thanks for mentioning the slots, that reminded us the step of actually making the host room :v

icy vortex
#

Nope its fine he wants to be bothered so we can help other people in the future and make it easier

earnest lion
#

yup yup

icy vortex
#

The only thing with localhosting that you wont get is the website tracker for all the items and history

earnest lion
#

i'm glad it wasn't LoD

icy vortex
#

I think you can run the website from source somehow but ive never localhosted besides some solo asyncs

sullen finch
#

Oh, I got a crash in the first battle :o

icy vortex
#

Did you try to go the archipelago "other" option in the menu mid fight

sullen finch
#

Nope

#

I just tried to access the Change Addition thingy

icy vortex
#

I thought that was fixed but that used to crash semi regularly and mostly a severed chains thing

#

I believe (i just never change additions there because its been broken through most of this implementation)

sullen finch
#

Lemme try it without Archipelago

#

Changed plans: I had to hurry so I tried Archipleagoon again. I checked the Addittion menu and it was empty, maybe that was it :v

earnest lion
#

it should not be empty

sullen finch
#

Will test with Vanilla Severed Chains later

earnest lion
#

what are your yaml options

#

specifically for addition randomization

sullen finch
#

Additionsanity :D

#

Also, my brother in Skyward Sword just found me Flurry of Styx XD

earnest lion
#

lmao are you connected in game

#

options -> other -> archipelago settings

sullen finch
#

Although I have not received the Poison Guard they said I got :o

earnest lion
#

that doesn't seem right

#

close out of archipelagoon

#

and restart it

sullen finch
#

Wait...

#

Imma try that after I try something else

#

I restarted it, I also opened Archipelago SNI Client since I didn't before (doesn't seem to have done anything), but the host site threw this issue:
A client connection was refused due to: {'InvalidSlot'}, the sent connect information was {'password': '', 'game': 'The Legend of Dragoon', 'name': '1', 'uuid': 'eee70567-fb75-4dc5-88c7-c73b22ba0923', 'version': Version(major=0, minor=6, build=1), 'items_handling': 7, 'tags': [], 'cmd': 'Connect'}.

#

I feel like we did something out of order there ._.

earnest lion
#

is the slot name "1"

#

or is it Player 1

#

could you send your yaml?

sullen finch
#

Sure, gimme a second

earnest lion
#

KreiserVII{1}

sullen finch
#

Precisely what I thought

#

Dude, we got SO screwed by our last successful attempt, we did everything backwards on this one XD

icy vortex
#

Well now youre learning all the things not to do at least

sullen finch
#

Yep :v

#

Now I got this error
A client connection was refused due to: {'InvalidSlot'}, the sent connect information was {'password': '', 'game': 'The Legend of Dragoon', 'name': '1', 'uuid': 'eee70567-fb75-4dc5-88c7-c73b22ba0923', 'version': Version(major=0, minor=6, build=1), 'items_handling': 7, 'tags': [], 'cmd': 'Connect'}.

#

Just so you know, I didn't start the game yet, but I CAN connect

earnest lion
#

well it seems like the slot is invalid again

sullen finch
#

But I do have the yaml updated

#

Imma send it again

earnest lion
#

did you regen?

#

so this is a fresh seed

sullen finch
sullen finch
earnest lion
#

KreiserVII{1}

sullen finch
#

Even the hosting info was different

icy vortex
#

You dont need a number in the brackets btw it can just be Kreiser

sullen finch
#

That's what we "got backwards"

earnest lion
#

but it doesn't make the slot name "1"

#

your slot name is "KreiserVII{1}"

icy vortex
#

I mean you should be able to name it anything within normal formatting that {x} always seemed more confusing than helpful imo

#

What psi just said youll probably need the brackets

sullen finch
#

... It worked

sullen finch
#

It works bois

#

Thanks a lot for your patience

earnest lion
#

oh you got two!

sullen finch
#

I just got sent BD XD

earnest lion
#

oh nice

sullen finch
#

The session was such a success. Between Donkey Kong Country 3 and Skyward Sword we got so much.
I'll simply say: Red Dragon Armor before Fruegel :v

earnest lion
#

That's awesome to hear!

icy vortex
#

@dusty gull I was playing puzzle games until now but I finally went back to look again and no Vanishing Stone in my good gamestate editor section. This is version 1557, I also checked on my laptop version 1565 and not there, then downloaded newest 1568 and checked still not there

#

No one look at that stupid Marvel Rivals shortcut please

earnest lion
#

those are goods you have

#

click "Give"

icy vortex
#

....

#

Well sorry for the ping then 🫡

#

Im going to try to finish as much as a i can today

earnest lion
#

@dusty gull do I need to change my log level to get that code you posted earlier to work? it prints the .error lines, but it is completely ignoring the .info calls

earnest lion
#

nvm on it, i'm sure its because of how i'm running that code. I've swapped to print and got it appearing

dusty gull
#

You'd need to init log4j in the same way SC's Main class does

earnest lion
#

noticed that the marshland chests are skipped, i'll need to see why

#

most likely because they have some special logic

dusty gull
#

Yeah almost definitely

earnest lion
#

chapter 1/disc 1 chests catalog'd and mapped

#

as expected, trap chests don't count, but interestingly the "goods" chests for the stones don't either

#

moving to disc 2

dusty gull
#

They wouldn't use the scriptGiveChestContents or whatever

#

It's only for items/equipment and 4 different amounts of gold

earnest lion
#

gotcha

#

so i tried to adjust this script for disc 2 for(int i = 0; i < 1200; i += 3) { final Path scriptDir = Path.of("files/SECT/DRGN22.BIN/" + i);

#

still getting disc 1 contents

#

so i'm fairly certain i've missed something

#

oh wait

#

it would include it

#

apparently it also found some chests not on this list

#

interesting

#
files\SECT\DRGN22.BIN\1050\4 -> item spark_net
files\SECT\DRGN22.BIN\1056\4 -> gold 20
files\SECT\DRGN22.BIN\1059\3 -> gold 20
files\SECT\DRGN22.BIN\1062\8 -> gold 100
files\SECT\DRGN22.BIN\1077\9 -> item material_shield```
icy vortex
#

I wanted to make sure I wasnt missing any but hadn't finished looking around yet

#

I should've thought ahead and just had the script viewer on the whole time

earnest lion
#

looking up the file mapping

#
Hellena Prison – Treasure Jump Cell – Scripts
Hellena Prison – Forklift Truck Cell – Scripts
Hellena Prison – Cave Cell – Scripts
Hellena Prison – Ladder Cell – Scripts
Lohan – Merchants Hallway to Leisure Park – Scripts
Kazas – Staircase to Throne – Scripts```
#

still disc 1 items

#

unless chests are added to these locations afterwards

icy vortex
#

Jump puzzle is on there line 12. 20g but as 657/2

#

Do some of those chests gets used twice somehow

earnest lion
#

could be that the new script accounts for disc 2 changes

#

657 isn't present in the new lest

#

list*(

dusty gull
#

The disk 1 maps on disk 2 should be identical

earnest lion
#
FROM DRGN21, only with some displacements in the order```
#

ah

#

well that makes this a bit strange

#

but i can work with it lol

#

i'll turn off the alarm for now

#
DRGN22/762/11
DRGN22/765/13
DRGN22/771/15
DRGN22/771/14```
#

these are all missing from the list (valley of corrupted gravity)

#

seems like it corrupts more than gravity lmao

dusty gull
#

The manual list or automatic list?

earnest lion
#

automatic

icy vortex
#

Ya if youre talking about the doc list preface it with Willups fucked up to help

earnest lion
#

well the thing is i did disc 2 lol

icy vortex
#

True

earnest lion
#

interesting, valley, home of giganto, and phantom ship aren't picked up

dusty gull
#

You just got a get out of jail free card and whiffed it

earnest lion
#

willups does great work for me

#

for free even

dusty gull
#

That's the best kind of help

earnest lion
#

i'll own up this time

#

besides its probably past psionisus' fault anyway

#

that guys an idiot

icy vortex
#

All I do is play it on my laptop while I stare at Baba is You, Lingo, Filament and Patrick's Parabox puzzles that I never figure out

#

I should stop starting new puzzle games tbf

earnest lion
#

the only thing i can think of is there are too many scripting things happening in those three locations

#

i'll pull one up

icy vortex
#

Ship makes sense because all of the shit there

#

3 bogey scenes password chest

dusty gull
#

The way I coded it, it looks for a very specific series of opcodes

earnest lion
#

gotcha, i'll post the submap object script on that doc for comparison

#

(once i get my dinner)

dusty gull
#

He's some dumb script stuff for you. Every character has their own dragoon transformation script. And every single one of those dragoon transformation scripts has code for every character to set the shadow size, and checks to see if the character is in dragoon mode or not

flint folio
#

That just means they were ready for modders to shuffle DS assignments. j/k

earnest lion
#

Excerpt from Home of Giganto (DRGN22\792\8)

JMP_354_1:
call Scus94491BpeSegment::scriptGiveChestContents, stor[21], stor[26] ; itemId, itemGiven
jmp_cmp !=, 0x0, stor[26], inl[:JMP_354_3] ; operator, left, right, addr
call Audio::scriptPlaySound, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0 ; soundFileIndex, soundIndex, unused1, unused2, initialDelay, repeatDelay
call SMap::scriptLoadSobjAnimation, stor[24], 0x1 ; scriptIndex, animIndex
call SMap::scriptToggleAnimationDisabled, stor[24], 0x0 ; scriptIndex, disabled
LABEL_20:
yield
call SMap::scriptIsAnimationFinished, stor[24], stor[25] ; scriptIndex, finished
jmp_cmp ==, 0x0, stor[25], inl[:LABEL_20] ; operator, left, right, addr
call SMap::scriptLoadSobjAnimation, stor[24], 0x2 ; scriptIndex, animIndex
call SMap::scriptToggleAnimationDisabled, stor[24], 0x0 ; scriptIndex, disabled
jmp inl[:JMP_354_2] ; addr
#

curious, it shares similarities to the marshland fort scripts

dusty gull
#

It's in a jump table, what's the index for the table?

earnest lion
#

gosub_table stor[22], inl[:LABEL_19] ; index, table

dusty gull
#

And what is s22

earnest lion
#

good question! i forget where exactly to find that

#

script param?

#

thats a no

dusty gull
#

You need to look at the script and see where s22 is assigned

earnest lion
#

mov 0x0, stor[22] ; source, dest

dusty gull
#

It's a variable in the script

#

It's only ever 0?

earnest lion
#

yeah

dusty gull
#

Well that's not a very useful jump table

#

What else is in the jump table?

earnest lion
#
LABEL_18:
mov stor[0], stor[24] ; source, dest
gosub_table stor[22], inl[:LABEL_19] ; index, table
mov 0x0, stor[22] ; source, dest
return```
dusty gull
#

Well hold on

#

It's set to 0 after the gosub_table

earnest lion
#

that is the second assignment

#

the first is the same

dusty gull
#

Can you show me the whole script

earnest lion
dusty gull
#

Table index 0 is just a return

#

So clearly it's getting set to non-0 somewhere

earnest lion
#

incr stor[stor[stor[0], 23], 8] ; operand

#

biblically accurate operand ig

#

the only thing that comes to mind is that it might be set outside its script

dusty gull
#

I'm thinking that's the case

earnest lion
#

or set depending on story flags

dusty gull
earnest lion
#

i bet its in dart's script

#

that nerd

earnest lion
#

I'll be resuming the chest stuff this week

analog coyote
#

Psionisus has been cooking up a storm 👀

earnest lion
#

i'm trying

flint folio
#

i'm crying on your behalf.

#

... oh

earnest lion
#

thanks 🤣

jovial flame
#

Should I be concerned about not sending items to others?

#

What's the first point I reasonably should be and how does that work?

icy vortex
#

Are you receiving items to start?

jovial flame
#

I am receiving them from others, but I haven't sent a thing.

icy vortex
#

Commander fight should've sent one

#

Forest shop should have a few unless you turned shopsanity off

jovial flame
#

Commander fight did not.

icy vortex
#

You have like some sort of tracker up or anything to show it?

#

But forest should be easy to check and send too

earnest lion
#

what version of archipelagoon are you on

jovial flame
#

.1.2 was the newest at the time.

earnest lion
#

not the apworld

#

the mod

jovial flame
#

... I don't know, I'm just using whatever's on the wiki with Archipelago launcher 0.6.7.

#

Er, github\

earnest lion
#

you've received items in game?

jovial flame
#

Yes.

earnest lion
#

ok shopsanity is on

#

are these items visible in your inventory

jovial flame
#

I'm at Volcano Villude at this point.

earnest lion
#

and what did those shops have

jovial flame
#

I can access the items I've been sent. No shops have had any inventory.

earnest lion
#

please update archipelagoon mod

#

you might have to start a new campaign

#

if your shops had no inventory you aren't on latest

jovial flame
#

I'm... on 1.7.1

#

I just replaced the files.

earnest lion
#

oh 1.2 apworld with 1.71 mod

jovial flame
#

I used the 1.2 yaml.

#

Since there was none with 1.3.1

#

I'm pretty sure I used the newest apworld too.

earnest lion
#

hmm

#

i wonder what version that one reports

#

when you go to connect to archipelago, do you see it listed as "connected"?

jovial flame
#

Apparently replacing the files made the shops work.

#

shrug

earnest lion
#

x.x

#

yeah newest mod fixed shops

#

because yours truly "fixed" things in sc

jovial flame
#

I updated to the devbuild as well.

earnest lion
#

ah, that would've done it then

#

though not sure why commander isn't sending

#

if you want to "check" it rq you can start a new campaign and connect to your archi, kill him and load your latest save

jovial flame
#

That might have also been broken.

#

Is there a way to check which bosses send?

#

Since... I probably beat more than one there.

earnest lion
#

all bosses will

jovial flame
#

Then I didn't send a lot of stuff.

earnest lion
#

uh oh

#

also i wish "KerPhi" the best with factorio

jovial flame
#

That also means I won't get the stuff I did get sent back, will it?

#

... Commander did not send anything out

earnest lion
#

Wat

#

You'll get the stuff back for sure

#

But if it didn't send ...

jovial flame
#

Well, the commander event didn't fire which fucks Silent over.

earnest lion
#

I gotta do some quick fixing

jovial flame
#

Since I checked the spoiler and it has her lantern.

earnest lion
#

Should have a new jar to test shortly

jovial flame
#

Okay. It's a simple swap in?

earnest lion
#

Yeah you'd replace the one file

#

I'll ping you when it's ready

#

So sorry

#

Could you send me your yaml so I can test

jovial flame
#

I'm using the one that came with .1.2's stuff, but I ddi almost no changes.

#

Everything is pretty much as I downloaded it from the github outside of the name, which was explained poorly to me.

earnest lion
#

outside of the name?

#

oh the {1}?

jovial flame
#

Only value I touched.

#

Yeah. sadcat

earnest lion
#

yeah i make the same mistake everytime

#

ok cool, i'll see what I can do rq

#

I'll be in chat testing

jovial flame
#

I'm still with the group at large I'm doing this with.

earnest lion
#

nw no need to join

#

i'm doing this for accountability xD

#

interesting..

#

it sends for me

#

(Team #1) Plant sent Leather Armor to Plant (Commander)

#

would it be ok if i connect to your slot?

jovial flame
#

Well, sure.

earnest lion
#

i'll not do the fight, i just want to make sure the version matches

#

what port?

jovial flame
#

36569

earnest lion
#

ok checked, version is ok

#

I wonder if the console prints anything

jovial flame
#

I'm running it in bash, then.

earnest lion
#

basher

#

what devbuild number

#

just so i can confirm same version there

jovial flame
#

1581 is the devbuild. I had just updated to be able to see shops. Not sure what I was on before.

earnest lion
#

oh right you said that

#

duh

#

ok so on the latest devbuild (1581) and most recent mod, the check sends

#

no error in my console

jovial flame
#

Oh, it works now.

earnest lion
#

👀

jovial flame
#

I also got inundated with items so

#

I have no idea why

earnest lion
#

were people having connection issues?

#

sometimes archipelago will just d/c you

jovial flame
#

No, not even I was.

earnest lion
#

well thanks psionisus

#

we will say its my fault then lmao

jovial flame
#

Well, it could simply be you fixed it.

#

You know the problem, when you have an issue with something at work, and ask the boss to come look?

#

And then when he does it just... fixes itself?

earnest lion
#

too familiar

#

well at least its working now

jovial flame
#

No idea why.

earnest lion
#

looking at the code, the only reason it wouldn't send at this point is a connection issue

#

not your connection, but the mod's connection to archi

jovial flame
#

Is it doable to have it queue up sends then or check connectivity... ?

earnest lion
#

the library i use for the AP connection should do something like that

#

but that isn't something i can control yet

#

possibly found the issue

#

just gotta pop this in, no need to restart campaign

jovial flame
#

Awesome.

#

So far it's working.

earnest lion
#

bless

jovial flame
#

It still feels bad reporting a problem. I have Severed Chains open in bash and everything.

#

I also feel half tempted to blame CachyOS because that linux distro is a heck and a half.

earnest lion
#

I'll take that out

#

definitely

#

but when you say "feels bad reporting a problem", do you mean the process sucks, or that its a shame to report a problem

#

...i guess it could be both too lmao

jovial flame
#

Especially if I'm uncertain about the origin of the problem.

#

It sucks because I feel relatively unhelpful.

earnest lion
#

i've worked with clients and customers before, its perfectly fine

#

sometimes its ok to just report "this weird thing happened"

#

we can always blame monoxide file a bug with archipelagoon and move it to SC if needed

#

Disc 3 chests catalog'd and noted. only ones that weren't picked up were

#

i suspect they use the same pattern as the others

#

so #missable chests

earnest lion
#

disc 4 mapped as well

#

all chests that weren't caught by this script (and have items) utilize the same pattern ; SUBROUTINE JMP_354_1: call Scus94491BpeSegment::scriptGiveChestContents, stor[21], stor[26] ; itemId, itemGiven jmp_cmp !=, 0x0, stor[26], inl[:JMP_354_3] ; operator, left, right, addr

earnest lion
#

not the banana

#

i've played too much league

#

@dusty gull this might be an overly broad question, but what can cause public static GameState52c gameState_800babc8; to be null?

#

for some context, i try to resolve gamestate private GameState52c resolveState(final GameState52c state) { return state != null ? state : gameState_800babc8; }

#

I'm probably not accessing it through the proper means

dusty gull
#

If a gamestate hasn't been loaded yet

earnest lion
#

yeah that checks out

jovial flame
#

So it sounds like you're only getting the later discs done support now... what happens after I finish disc 1 and hit my "goal" for Legend of Dragoon?

earnest lion
#

once you finish disc 1 thats it! no more locations to check

#

all goals are supported though

earnest lion
#

I intentionally cut items/locations per chapter in order to make a restrictive chapter 1 goal viable. so chapter 2 opens up a lot more, but once you goal there is nothing else to do in game except probably find bugs and vanilla stuff.

earnest lion
#

I need to investigate what triggers those other chests outside of their scripts, so I'll be stuck on that a few days most likely

#

I'll investigate darts script

earnest lion
#

hmm this is probably from the additional menuscreen

earnest lion
#

its occurring because of my render loop, but i'm not exactly sure how? the new menustack is null, so i don't think thats the culprit

dusty gull
#

Do you still need your own?

earnest lion
#

opening the menu and exiting fixes it

#

yeah, i still do 😅

#

custom timer & position

#

for message boxes

dusty gull
#

How does having your own menustack solve that?

earnest lion
#

I can render outside of menus

dusty gull
#

I'm not understanding

earnest lion
#

Previously I had some trouble trying to get the messages rendering when outside of combat or the menu, so the new menustack resolved that

#

let me trying using the SItem one again

dusty gull
#

Oh right, you moved the call to uploadRenderables for custom menustacks

earnest lion
#

ye

dusty gull
#

I thought you did something so you wouldn't need your own

#

Disregard

earnest lion
#

o7

#

but i think i do need to do some deallocation on it

#

whatever the SItem menu does when you back out "fixes" this issue

dusty gull
#

It changes the static textZ

#

Which needs to be removed, but that's a job for another day

earnest lion
#

but i'm not exactly sure what changes that in archipelagoon tbh

#

well hold on

#

don't answer that

jovial flame
#

I am the first person to complete my run on the multiworld after fixing it a dozen times because I powered through stuff and also getting sent stuff like the dragoon armours immediately let me cheese 99% of it.

#

I'll probably set it to disc 4 completion next, or maybe 50 stardust....

earnest lion
#

yet

#

but congrats!

#

How did you feel about it overall?

jovial flame
#

I felt overpowered because of how multiworld progression was and I liked it, but the way the items were distributed meant I got 4 wargods callings, so there was some wank with the item distribution.

#

Also, I think I won't use shopsanity in the future. That stank. Not having the items I want and also not having anything past disc 1 was not ideal.

earnest lion
#

oof, i get it though

#

what in particular did you want past disc 1?

jovial flame
#

I do like the archipelago items in the shop so I can buy a shitload of traps for the guy playing Sonic.

#

Well, just that the shops were completely empty after you completed the goal, despite there being three quarters of the game feels off, so somehow I think using shopsanity would need to completely populate every shop, and then somehow determine whether or not the items are local or not by determining if they're past the goal.

earnest lion
#

I've received feedback that having things after the goal is strange, so I did some refactoring to disk-ify the locations

#

but I do think that I should add some logic to archipelagoon to allow vanilla shops if no items are present

jovial flame
#

While true, it's not exactly resolved by the distribution of goods. Disc 1 goals and getting endgame content like the friggin soul eater was bizarre.

earnest lion
#

Shopsanity will also be getting tweaked to have an additional option to add vanilla items in addition to the AP ones

jovial flame
#

Oh, that actually sounds good!

earnest lion
#

or maybe a "item shops have all recovery items" thing

earnest lion
jovial flame
#

Though I do love snorting overpowered right off the bat, personally.

earnest lion
#

Thats the awesome part I think of randomness tbh

#

like, why not be OP?

#

i could also just get bastard swords

jovial flame
#

Having red DG armour and soul eater of all things right at the level 1 was funny. But that's also because I had to restart a few times to get stuff to work.

earnest lion
#

I had attack badge and a claymore in my first two checks

#

dart was set

jovial flame
#

I'm sort of wondering why they work with the values they do instead of int/floats.

#

That seems more of a platform problem than yours but it increases the difficulty of figuring out what and how to edit things because I'm used to raw unity animator data more than anything.

earnest lion
#

not sure i am following what you are sayin'

#

are you referring to weights on the items?

jovial flame
#

Well, also for difficulties and stuff, all being values like 0 - 50.

earnest lion
#

oh! for the archipelago

jovial flame
#

Yeah, sorry for the confusion.

earnest lion
#

nw, my best guess is its percentage based things

#

and then some logic is done based off that percentage and the seed to determine the various settings/items

jovial flame
#

That's what floats are to me, too.

#

Hmm, when you put it like that, it makes sense.

earnest lion
#

not me forgetting floats have decimals

earnest lion
#

shopsanity will probably be adjusted next version

#

me thinks

uncut kelp
#

I cannot for the life of me get this to cooperate. Does anyone have any ideas from this error code on generation?
Traceback (most recent call last):
File "startup.py", line 121, in run
File "console.py", line 25, in run
File "Generate.py", line 588, in <module>
File "Main.py", line 365, in main
File "concurrent\futures_base.py", line 449, in result
File "concurrent\futures_base.py", line 401, in __get_result
File "concurrent\futures\thread.py", line 59, in run
File "Main.py", line 270, in write_multidata
File "C:\Program Files\Archipelago\custom_worlds\legend_of_dragoon.apworld\legend_of_dragoon\world.py", line 57, in fill_slot_data
File "worlds\AutoWorld.py", line 347, in getattr

uncut kelp
earnest lion
#

what version of archipelago are you using rn?

#

it shouldn't be spitting out a 0.6.3 yaml

uncut kelp
#

good question, give me one sec

#

0.6.3

earnest lion
#

update to 0.6.6 and try again

uncut kelp
#

copy that boss

earnest lion
#

i'll keep looking into it either way 🙂

#

i suspect its because your version of archipelago does not have the world version available to use

#

you can utilize Options Creator to generate a yaml easily

#

(for any installed APWorld)

uncut kelp
#

It worked, I got excited, and played for two hours. Thank you 👏

earnest lion
dusk nova
#

Hello! I hope this is the right channel to ask in! 😅 If not, then I have no problem deleting my message and posting it in the correct channel!

I have a question regarding setting up Archipelagoon.

I have downloaded everything I need: Severed Chains, Archipelagoon itself, as well as the Legend of Dragoon AP World. I also extracted the Archipelagoon .zip in Severed Chains' mod folder, put the AP World in Archipelago's "custom world" folder, and launched it. I start a new campaign, but I can't see Archipelagoon listed as one of the mods.

Sooo yeah, I am a bit confused on what I am supposed to do. Generating a YAML, connecting to a multiworld, all that. Everything related to Severed Chains and the game and such works perfectly it seems.
I have a feeling everything will make sense once someone explains it to me, but I am a bit lost at the moment. 😅

earnest lion
#

yeah if it doesn't show up that means the mod wasn't placed into the mods folder properly... can you screenshot the contents of it?

earnest lion
#

with your severed chains, are you using the latest 3.0 devbuild?

dusk nova
#

Sorry for the late reply. Here is a screenshot of the folder. So I do have the folder and the .jar file.

#

As for the build, I am fairly certain I'm using the latest build, since I just downloaded it directly from the website. How do I check if it's up to date? Launch Severed Chains?

earnest lion
#

launch it and it should be in the title bar

dusk nova
#

Yes, I do have the 3.0 build.

earnest lion
#

what version?

#

devbuild-1***

#

well i suppose that doesn't exactly matter...

dusk nova
earnest lion
#

ok so when you go to new campaign, what are you not seeing? can you screen that

dusk nova
#

Here is after I press New Campaign

#

And here is after I click on Mods

#

I might have missed something, but from what I interpreted, Archipelagoon is supposed to show up as a mod

dusty gull
#

Send debug.log

earnest lion
#

it sounds like something is failing to load for sure

dusk nova
earnest lion
#

looks like it isn't finding the mod in that folder

#

you only have one instance of severed chains yeah?

dusk nova
#

Yes, I do.
However, I also have one "extra" Archipelagoon folder.

#

Like this

#

Could that be why?

earnest lion
#

they should be up one folder

#

yeah

dusk nova
#

All right, I will remove the first and test it

#

And there it is!

#

Figures it was something that simple

#

So, what do I do now in terms of creating a YAML and connecting to a multiworld?

earnest lion
#

you can use options creator in ap launcher

#

and connect in game 🙂

#

(settings -> other -archipelagoon)

dusk nova
#

I found the options creator, thank you!
Last question, I promise. I can't find "settings" in the AP Launcher. Where is it? 😅

earnest lion
#

settings would be in game

#

so start a new campaign and you can mess with the options

#

note: before starting the campaign, you can input your port info and hit the back button to save the info. just start the game as normal and it'll connect when after cutscene

dusk nova
#

Ohhhh I see, my bad. I'll test it out on Monday when me and my friends are playing, then!
And I'll keep that in mind, sounds really intuitive!

Thank you so much for all your help! 😊

earnest lion
#

of course! if you have any other questions please let us know! i hope you enjoy it

dusk nova
#

I'll definitely let you know if there's anything else I'm wondering about, and I'm sure I will enjoy it! :D

earnest lion
#

I'll be moving towards rule builder at some point, so be sure you are on this version! (hey that one APWorld works now)

earnest lion
#

@jovial flame sorry for the ping, but I know you had gripes with shopsanity, does what i'm proposing in this description seem like it would address the problem you had?

jovial flame
#

Here? Lemme take a look.

earnest lion
#

New Options:
Shopsanity (Toggle)
Add repeatable consumables (Toggle)
Shop slot slider (5 - 15)
Minimum cost (Slider)
Maximum cost (Slider)
Randomize cost per shop (Toggle)

jovial flame
#

I'm actually in a work call right now sadcat

#

That sounds actually great for the amount of customization.

#

I REALLY like the randomizing cost per shop.

#

The potential for tomfoolery there is immense.

earnest lion
#

perf, I've been trying to think about how I can make this more fun lol

#

or i suppose more cursed

jovial flame
#

People can customize it!

earnest lion
#

yep!

#

I've been inspired by hollow knight's customization for charms and notches

analog coyote
#

I will be playing LoD for Chrism’s next community AP. I’m so excited aYaaaaa

#

Thank you @earnest lion for even giving us this opportunity Prayge

earnest lion
analog coyote
#

LET’S GO shockultrazoom

earnest lion
#

Also can't wait to see the crazy vid chrism puts out lol

woven skiff
#

legend of dragoon is not in eije's lobby though

#

has anybody tried to PR it?

#

when a community sync gets announced they get really busy, so unless something gets done soon, chances are LoD won't get in on time

earnest lion
#

What do you mean?

woven skiff
#

only those games are allowed in Chrism's community sync

earnest lion
#

Oh gotcha

#

I'll see about following that doc

woven skiff
#

so my comment was mainly for Ninshi, since they say they will be doing LoD's in chris's sync, but the game is not in the lobby

earnest lion
#

I was able to get the shop sanity rework all done on the mod side of things, so all that's left is the APWorld

woven skiff
analog coyote
#

Thank you for bringing it up or we probably would have missed that

earnest lion
#

it seems pretty easy to set up a PR, though they have lots of processes to test the stability of the APWorld lol

woven skiff
#

yeah, be prepared to the real possibility of getting turned down

#

eije is very methodical for this

#

and they also have several PRs open and lots of apworld to be reviewed

#

more every time a community sync is announced

#

so it can also happen that they don't get to review it before the sync

#

so better to do it sooner than later

woven skiff
analog coyote
#

guess i got lucky xd

earnest lion
#

I should have the APWorld ready for testing soon

#

If anyone is interested in quick testing it

analog coyote
earnest lion
#

I'll send a jar and an apworld

earnest lion
#

Archipelagoon v1.7.3

Just a few bugfixes!

Changes

  • UI textboxes will render in the top right and hopefully not prevent gameplay

Fixes

  • FIXED: Bosses will send check even if they aren't defeated
  • FIXED: Goals not actually goaling

Known Issues

  • Talking to rose after hoax will softlock your game if you don't have Red Dragoon Spirit
  • Life Water/Water Bottle out-of-logic, but doesn't affect gameplay yet
  • Lavitz's locations unobtainable before going to kazas
    • You can use the debugger to add lavitz to the party to circumvent this issue
  • Goods (Prison Key, Axe from the Shack, Life Water, Water Bottle) are not working if received only by AP
  • Some Goods (Prison Key, Axe from the Shack) are still able to be picked up despite not being sent prior
#

this release does not have the shopsanity stuff and is just for the sake of fixing the playability of the mod!

analog coyote
#

Can I ask what you guys do with multiple copies of version releases in terms of directory organization

#

Cause I want to help test the AP world but don’t want it to mess with my current run

earnest lion
#

So you can just move them in and out

earnest lion
#

I'll be creating the APWorld and the jar if anyone wants to do some quick testing this evening @analog coyote @icy vortex @west drum

west drum
#

oh no Psionisus found me. I can probably do some light testing tonight.

earnest lion
#

Lmao

#

If ANYONE wants to test the shopsanity changes, please feel free to use these!
you will have to generate a yaml via option creator. the next version is breaking, so you'll want both the apworld and the mod.

#

these aren't technically ready yet, but please report any bugs

#

a formal announcement will be posted here and in the archipelago thread once it is officially ready 🙂

analog coyote
west drum
#

I said that and then immediately forgot. Sometimes I feel like my brain just runs out of ram.

earnest lion
#

All good, I'm still cooking dinner lol I'll be in chat afterwards

west drum
#

I feel like I'm having a stroke or something. I'm not finding it in options creat...was there an archipelago update I missed? Did 0.6.7 finally come out?

west drum
#

ok probably need to update which is why I'm not finding it in options creator

#

hoping this doesn't brick any of the 3 archis I'm in lol

earnest lion
#

it shouldn't!

west drum
#

oldest still works so the rest should also be fine

icy vortex
#

Berserker said people have always overexaggerated that anyways

west drum
#

I've only had it break something once and it was minor in that it is easy enough to revert

earnest lion
#

ok i'm hoppin' in the vc

#

discord will letme join eventually

west drum
#

lol

icy vortex
#

Was the textbox offset on the last one too I havent done Dragoon checks in a while

earnest lion
#

nope its new

#

(this one is actually shop sanity)
-removed attachment-

earnest lion
#

fixes bounding issues with random prices and lets you actually buy items
-removed attachment-

icy vortex
#

Okay i was cooking a steak and now just looked at it. First thought hellena 1 and forest should not default at 10 item slots its too much

#

I know you can change it but I dont think people will notice

#

I guess it just forces you to come back later which isnt too bad

earnest lion
#

I can adjust the defaults easily

#

to the default shop slots

#

rather than 10

#

eventually when i get smarter the motivation i'll figure out cost weights

icy vortex
#

It should be good for later shops. Early shops just probably shouldnt be too many slots

earnest lion
#

testing went well, found bugs immediately

#

10/10 would do again

icy vortex
#

Sounds good ill probably do some more testing with it and a repo world together then tomorrow.

#

The extra items for gold might be good but you could always do battle rewards mod or just sell everything you get from other games to pay for the rando prices

west drum
icy vortex
#

Im never gonna use it

#

But if random prices are literally a default option something needs to be figured out if battle mods isnt a soft requirement

earnest lion
#

I would prefer archipelagoon modify its own stuff, but it's a low priority atm

icy vortex
#

Because if prison key is like 400 in forest shop thats 2 hours of grinding

#

Its really just an issue early game. Like everything else thats been an issue so far. Disc 1 stuff

earnest lion
#

I have an idea that I can try to implement

#

I might be able to create a wrapper for the shops and give it a soft cap based on a few factors. Probably using a percentage based on the min and max. Idk I'm bad at math so it'll take some tweaking

#

It might remove the min/max from the yaml

#

Or maybe it'll factor that in? I'll sleep on it

icy vortex
#

Ya but base functionality is good at least

earnest lion
#

Yeah I want to solidify the APWorld since that needs to be as stable as possible

icy vortex
#

I might try a 3 game goal with disc 1 and just see what happens money wise in general

earnest lion
#

Sounds good!

icy vortex
#

One thing I noticed last night was the new shop positions have an unknown id name so theoretically if you hinted something in one of those slots I assume itll say unknown id but idk if itll say the shop. Ill look into it more later tonight

earnest lion
#

unknown slot name?

icy vortex
#

Yes when you pick an item in a slot that isnt there in vanilla it says picked up item from unknown id xxxxxxxxxxxx

#

Ill send a screenshot later when I see what a hint looks like

earnest lion
#

I'll try to hint something. I would make sure that you are using the latest APWorld and mod I linked

icy vortex
#

It was newest. Had lower defaults ill look later tonight and make sure its the same room. Was working on hint points in a game and playing other games should be able to hint later

earnest lion
#

if you could send me the spoiler and yaml that'd be helpful 🙂

icy vortex
#

Im working on getting something together but spoiler just has normal slots it wont say the top 4 are normal items so I have to find a shop with a REPO item in created slots to see if a hint looks weird too

#

Actually I have to do it for my 3rd game because most of REPO stuff is repeated items so it wont hint the right one probably

#

@earnest lion here is what one of the items locations looked like in forest shop after the 4th slot I just got enough gold by selling stuff to get more checks, spoiler won't help probably but here it is too. Im working on trying to find something to hint with getting hint points without changing cost

earnest lion
#

108_52105 is 4th forest slot

#

strange