Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

YellowAfterlife

2,212
Posts
5
Topics
3,577
Followers
38
Following
A member registered Oct 01, 2014 · View creator page →

Creator of

Recent community posts

You too can try changing static: to "static": as I’m not sure if anyone did as of yet

The downloadable version of Terrasavr caches the online version for offline use and should be fine.

Terrasavr+ isn’t up to date, ideally needs some time set aside for it to do the various tweaks that people asked for, but I’m juggling quite a few things right now so it’ll take time.

The current u100 NTT preview build can be found on the “ntt_development” beta branch on Steam. There’s still much left to do, but It’s Something (tm)

You shouldn’t have to put GMLive in and out - e.g. Nuclear Throne has it imported at all times and I only flip live_enabled to 0 before making a new build.

Still, to fix anything I need to know how to reproduce an issue, or at least whether the guesswork workaround does anything.

g_VAR_window_set_topmost suggests that GM didn’t notice the function definition as such.

First, you should probably try clearing your code cache - YYC sometimes. I think adding/removing extensions now auto-clears cache so that could be why it helped.

The example projects have the extension copied to them so that shouldn’t be any different on average

This turned out to be two things:

  • On GX/WebAssembly target, buffer_get_address gives not a byte array like HTML5 target does, but a… raw address inside the WASM memory blob, I think? I’ll get around to modifying the extension to support WASM sometime but not at this very moment
  • On native platforms, if you’re calling both native_cursor_set and window_set_cursor, GM and the extension will fight over who gets to set the cursor, usually with less-predictable results.

When saying that something doesn’t work, it is good to show what exactly you are doing, else I can only guess what you could be doing wrong - check out the Desktop Friend demo if you may, it now features some transparency tricks to make a dashed shadow when partial transparency is disabled.

You can have a peek at your own fonts and other fonts in FontForge to see what’s up - from a few random fonts I opened, it seems like the right edge is adjusted so that the glyphs “overhang” rather than adjusting the spacing between them.

If your spacing rules are simple enough that Spacing works for them, you can probably use a \[] range from your first glyph to your last glyph.

If anyone is willing to contribute an auto-kerning algorithm in Haxe or JavaScript that takes a pair of glyphs in some form (say, just Array<Array<Bool>>) and returns the kerning offset between them, I can put that in and as my gratitude implement some simple pixel plopping with a checkbox.

Another approach would be to make your own tool that outputs JSONs for Pixel Font Converter or its Batch Processor - anything that you can do in the UI also goes into the JSON file.

As you can probably suspect, this tool is generally pretty niche

(1 edit)

I think you would rather want to use right to adjust the right edge of glyphs? But ultimately clipping is kind of up to the font renderer implementation.

(1 edit)

Testing this,

Create

global.coop_players = [1, 2];

Draw

live_auto_call;
var _player = global.coop_players[view_current];
draw_text(305, 5, string(_player));

it works as normal after live-reloading.

I suppose starting with the obvious, are you on the latest version of GMLive? You can see it at the top of GMLive script.

Did a quick test and that doesn’t seem to be as simple as that - what’s the whole code for this draw event?

Have you placed the executable in the Terraria game directory before running it? (see screenshots on the page for instructions)

Put it up on GitHub now, should be easier to look at:

https://github.com/YAL-GameMaker/Apollo-V2

An update with these and a few others is now live

I too wish there was a better way to work with anonymous functions, but debug_get_callstack() returns things like gml_Script_anon@32@scr_test@scr_test:3 at best.

That IDE version is a little old, but ultimately the error has seemingly nothing to do with GMLive - it’s the compiler deciding to rebuild a texture group and then failing to do so because the file’s busy (?)

Rebuild cache file C:\Users\tlome\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE\Adventuren_EF3DEF1E_C78485E8\Adventureno3\Default\TextureGroups\_2048_131\Default.xml due to changed texture format

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.

 ---> System.AggregateException: One or more errors occurred. (The process cannot access the file 'C:\Users\tlome\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE\Adventuren_EF3DEF1E_C78485E8\Adventureno3\Default\TextureGroups\_2048_131\Default.xml' because it is being used by another process.)

you could try killing GMAssetCompiler and/or Runner.exe processes just in case the previous run gets stuck?

The extension does not change any files! Only reads them

You can re-import the script from the YYMPS - it should have a bracket there

live_enum_add("flexpanel_position_type",{static:flexpanel_position_type.static,relative:flexpanel_position_type.relative,absolute:flexpanel_position_type.absolute})

I have no immediate explanation as to who could be stealing curly brackets from your file, but maybe it’ll stop if you make that a "static": instead of static:..?

I think you’ll have to build this yourself - send me an email and I’ll send you the project files with the x64 script.

For Apollo V3 I’ve set up build scripts on GitHub, but this one was built on my (now-dead) x64 Mac Mini

(1 edit)

Make sure that Terrasavr is up to date (shows the build date when the page loads or if you click [>])

My character file was Calvuroth.plr, but the character name was something like “Calvuroth [i:1343]” (fire gauntlet ID). I was getting an error related to the file having a bad offset and assumed it was due to the item code. I changed it, but before testing it again I also cleared my cookies so I didn’t know what fixed it.

Doesn’t seem to be as simple as that so I’m assuming that you opened the character in 1.4.5.7 around that time but Terrasavr didn’t update yet.

The other issue I’ve encountered was that I swapped my character from mediumcore to softcore yesterday and when booting into the game a bunch of items were swapped with other items. I’m gonna test again with a few less variables to see if it’s consistent.

Edit: my loadouts are getting screwed up in the editor. I should have full tiki and bunch of summoner accessories here. my second loadout is working fine. I thought it would be because loadout 2 has the accessories set to share, but I checked the character and that’s not the case.

Screenshots of the equipment tab

Please email me the original PLR that gets read incorrectly / saved incorrectly and I’ll have a look when time permits

Hello, both work (see About & Contact) - Discord is slightly inconvenient since it only shows the last 100 conversations in DMs (why would anyone want this), but instant chat sure is nice

Hello, you may have to elaborate on what “a save with an item code in its name” means, but the tool wasn’t compatible with 1.4.5.7 until tonight’s update so that can be a factor

You can

  • Put live_name + live_call inside the method so that GMLive updates it
  • Temporarily copy the method assignment into the Step event so that it gets replaced with a new one

Yeah, that’s a lot of changes

I don’t get access to these updates early so I’ll only be able to start looking into it when time permits - at best on this weekend, more likely on the next weekend

Hard to tell from that alone, but make sure that you have the live_call line before the event_inherited() call or DnD block - otherwise it’ll run twice in “live” code

You can’t just add those to the project, you should import the GMEZ - the .extension.gmx describes which functions the DLL exposes, including that one.

Hello! Inside Included Files (datafiles/) there is a GMLiveHelper.gmez, which contains the mini-extension that’s used to restart the game for live_restart_if_necessary. That one should be less of a challenge to import.

Cheers, I’ll have a look next time I update Terrasavr - the modifier menus are currently a quick fix.

Yeah no, custom cursors are just wonky on Windows, especially only if some of your displays use HDR - with sufficiently poor luck you might observe the same when setting a custom .cur in System Settings.

I’m not sure if there’s anything that you can do on extension/WinAPI side - when you create a cursor, you only provide a RGBA8 bitmap, width, and height - there’s nothing for HDR.

Ah, if you mean creating a character from scratch in Terrasavr - that’s quirkier as it doesn’t necessarily fill it out like the game does. Creating a blank character in Terraria and loading it will work fine.

Maybe I’ll just make it load a PLR at startup in the next version, but that requires a little reworking.

I have finally gotten around to it and… I can’t seem to get it to break at all with latest Terraria version - loading and saving back or adding/removing items all keeps the file intact as far as Terraria v1.4.5.6 is concerned. I’d need more exact steps

You shouldn’t have to, but perhaps that’s one of those GameMaker moments with the new update - I’ll see about it next time I update GMLive.

Your sprite isn’t marked as “use for 3d” / “separate texture page”, so it gets packed with other graphics into a larger texture.

When you have just this one sprite and nothing else, it fills the whole texture page and all is well.

GMLive references the particle functions in a few spots so GM adds the default particle textures to your texture page and you get this.

You could tick the “use physics” checkbox in your template room, though as far as I can tell, GMLive should be calling physics_world_create and co during room setup if the room had it checked - if you can reproduce this in an empty project, email me a sample.

Added a slightly more proper solution for this to 1.0.79a - enums from fnames are now exposed automatically, and if you need something that doesn’t get picked up out of box, you can now do things like

live_enum_add("flexpanel_wrap", {
	no_wrap: flexpanel_wrap.no_wrap,
	wrap: flexpanel_wrap.wrap,
	reverse: flexpanel_wrap.reverse,
});

Most of the issues as of late have been fairly minor and/or had simple workarounds, so I can afford to take some time and do most of things I wanted before rolling out a larger update like this one

Added a tweak for this in 1.0.79 - shown bits should now work.

Did a tweak for this in 1.0.79 - particle system resources should now get auto-exposed to “live” code.