Jump to content

October QoL - Beta


Recommended Posts

  • Developer

We had something else we were hoping to release for October, however we're going to need a little bit more time for that, so we're throwing in a surprise QOL update. The Beta Branch is open again, this time with the October QoL changes that will be coming with Hallowed Nights next month. 

The game is paused! Seriously it is! No seriously, with this update you can pause the game! It also contains many improvements to the chat, allowing you to view a recent history of messages sent in chat, along with maintaining your chat history when you go to the caves from the forest, or vice versa.

You can follow the directions here to join the beta.

Server Pausing:
Changes:

  • Server admins and local hosts can now pause the game.
    • This can be done via a keybind that defaults to ‘P’ or when more than one player is on the server, by the “Not a pause” Pause Screen.
  • When playing by yourself, on a server you locally host or are an admin for, the game can now automatically pause (“Auto-Pause”) when focus is taken away from the world.
    • For example: the “Not a pause” Pause Screen, cookbook, wardrobe, map, etc.
  • While other players are in the world, auto-pausing will be disabled.
  • When the game is paused, you can:
    • Manage your inventory
    • View crafting recipes
    • Look at the map
    • Talk to other players via ingame chat
    • Disconnect
  • Servers that are paused will show up as such in the server browser, and can be filtered based on that setting.
  • Worlds hosted without caves will now be paused while all players are in the lobby.

Notes for Modders:

Spoiler
  • You can hide the darkened pause underlay via the console command:
    • Profile:SetHidePauseUnderlay(true)
  • You can enable and disable the Console Command Screen auto-pausing separately in the Advanced menu in settings.
  • When the game is paused, you can run the command TheNet:AdvanceFrame() to make the game advance forward one Update(dt) call.
  • The game now has a new update loop: StaticUpdate(dt), StaticUpdate will run regardless of the game being paused.
    • Components now also have support for a OnStaticUpdate call, but this will only be executed when the game is paused, and will be skipped when the game is unpaused.
  • There is a new Scheduler called staticScheduler, this Scheduler is identical to the normal scheduler, except that it runs on the StaticUpdate loop, and not the Update loop, meaning it will update while the game is paused.
  • EntityScript now has a DoStaticPeriodicTask and DoStaticTaskInTime functions, these are identical to their non-static counterparts, except that because they run on StaticUpdate, they will run even when the game is paused.
  • All widgets and screens will now use DoStaticPeriodicTask and DoStaticTaskInTime by default.
  • Widgets and screens also have a DoSimPeriodicTask and DoSimTaskInTime, which will pause and stop updating when the game is paused.
  • Widgets and screens have a new function called UpdateWhilePaused, which is by default called with true, if called with false, DoPeriodicTask and DoTaskInTime will now point to their Sim variants instead of the Static variants.
  • All widget OnUpdate(dt) calls will need to check TheNet:IsServerPaused() if their behavior should stop updating when the game is paused.
  • All AnimState’s have a AnimateWhilePaused function, by default all normal in game objects won’t animate while the game is paused, and all widgets and screens will animate when paused, you can use this call AnimState:AnimateWhilePaused(animate_while_paused) to set the correct behavior for your animations.

If your widget/screen should continue to behave normally while paused, you will need to make all the following changes to it:

  • Replace any reference to scheduler with staticScheduler.
  • Replace any call to GetTime with GetStaticTime.
  • Replace any call to GetTick with GetStaticTick.

If your widget/screen should pause when the game pauses, you will need to make the following changes to it:

  • If you have an OnUpdate(dt) call, add the following to the first line in the function:
  • TheNet:IsServerPaused() then return end
  • Call self:UpdateWhilePaused(false) on the widget/screen, and on any child widgets that need to pause when the game is paused.
  • Call AnimState:AnimateWhilePaused(false) on any widgets that have an AnimState.

If you want your screen to autopause the game, you must do the following:

  • Add the following code to the constructor of your screen:
    • SetAutopaused(true)
  • Add/Create the following to the OnDestroy function of your screen:
    • SetAutopaused(false)
  • If the top center of your screen is being used, you can move the server paused text to somewhere else by adding this function to your screen:
    • function YourScreen:OffsetServerPausedWidget(serverpausewidget)
    • And then call serverpausewidget:SetOffset(x, y) inside the function.


In Game Chat:
Changes:

  • Announcements and Skin Announcements will now show up in the chat queue instead of at the top of the screen.
  • Announcements and Skin Announcements will now show up in the lobby chat window.
  • Chat now has a history of the last 100 messages, and can be scrolled to view those messages.
  • Chat history will persist between the character select screen, forest, and caves.
  • Messages sent while a player is traveling between the caves or forest will be received when the player finishes loading.

Other Changes:

  • The Bee Queen Crown can now be deconstructed.
  • Reduced the ingredients for crafting the Premier Gardeneer Hat
  • Changed the ingredients for crafting the Cookbook and it no longer requires a Science Machine to prototype.
  • Improved the Pick/Axe’s durability and damage.
  • All key binds have been reset due to the addition of the new pausing key bind.

Bug Fixes:

  • Fixed a bug where Wigfrid would gain inspiration twice when using ranged attacks
  • Wigfrid now properly calculates inspiration based on the actual damage done. This means buffs, debuffs, and electric damage now affect her inspiration gain. The target’s buffs and protective states, like a hiding Slurtle, will also affect her inspiration gain. Note: The inspiration gain rate has been adjusted to account for her natural +25% damage multiplier.
  • Fixed a bug where the Winged Sail would not save/load its state when built on land.
  • Fixed a bug where spiderdens on boats could grow again if you removed den decorations from them.

 

View full update

 

  • Like 71
  • Thanks 8
  • Health 3
  • Big Ups 4
  • GL Happy 7
  • Potato Cup 2
Link to comment
Share on other sites

Spoiler
3 minutes ago, zarklord_klei said:

We had something else we were hoping to release for October, however we're going to need a little bit more time for that, so we're throwing in a surprise QOL update. The Beta Branch is open again, this time with the October QoL changes that will be coming with Hallowed Nights next month. 

The game is paused! Seriously it is! No seriously, with this update you can pause the game! It also contains many improvements to the chat, allowing you to view a recent history of messages sent in chat, along with maintaining your chat history when you go to the caves from the forest, or vice versa.

You can follow the directions here to join the beta.

Server Pausing:
Changes:

  • Server admins and local hosts can now pause the game.
    • This can be done via a keybind that defaults to ‘P’ or when more than one player is on the server, by the “Not a pause” Pause Screen.
  • When playing by yourself, on a server you locally host or are an admin for, the game can now automatically pause (“Auto-Pause”) when focus is taken away from the world.
    • For example: the “Not a pause” Pause Screen, cookbook, wardrobe, map, etc.
  • While other players are in the world, auto-pausing will be disabled.
  • When the game is paused, you can:
    • Manage your inventory
    • View crafting recipes
    • Look at the map
    • Talk to other players via ingame chat
    • Disconnect
  • Servers that are paused will show up as such in the server browser, and can be filtered based on that setting.
  • Worlds hosted without caves will now be paused while all players are in the lobby.

Notes for Modders:

  Reveal hidden contents
  • You can hide the darkened pause underlay via the console command:
    • Profile:SetHidePauseUnderlay(true)
  • You can enable and disable the Console Command Screen auto-pausing separately in the Advanced menu in settings.
  • When the game is paused, you can run the command TheNet:AdvanceFrame() to make the game advance forward one Update(dt) call.
  • The game now has a new update loop: StaticUpdate(dt), StaticUpdate will run regardless of the game being paused.
    • Components now also have support for a OnStaticUpdate call, but this will only be executed when the game is paused, and will be skipped when the game is unpaused.
  • There is a new Scheduler called staticScheduler, this Scheduler is identical to the normal scheduler, except that it runs on the StaticUpdate loop, and not the Update loop, meaning it will update while the game is paused.
  • EntityScript now has a DoStaticPeriodicTask and DoStaticTaskInTime functions, these are identical to their non-static counterparts, except that because they run on StaticUpdate, they will run even when the game is paused.
  • All widgets and screens will now use DoStaticPeriodicTask and DoStaticTaskInTime by default.
  • Widgets and screens also have a DoSimPeriodicTask and DoSimTaskInTime, which will pause and stop updating when the game is paused.
  • Widgets and screens have a new function called UpdateWhilePaused, which is by default called with true, if called with false, DoPeriodicTask and DoTaskInTime will now point to their Sim variants instead of the Static variants.
  • All widget OnUpdate(dt) calls will need to check TheNet:IsServerPaused() if their behavior should stop updating when the game is paused.
  • All AnimState’s have a AnimateWhilePaused function, by default all normal in game objects won’t animate while the game is paused, and all widgets and screens will animate when paused, you can use this call AnimState:AnimateWhilePaused(animate_while_paused) to set the correct behavior for your animations.

If your widget/screen should continue to behave normally while paused, you will need to make all the following changes to it:

  • Replace any reference to scheduler with staticScheduler.
  • Replace any call to GetTime with GetStaticTime.
  • Replace any call to GetTick with GetStaticTick.

If your widget/screen should pause when the game pauses, you will need to make the following changes to it:

  • If you have an OnUpdate(dt) call, add the following to the first line in the function:
  • TheNet:IsServerPaused() then return end
  • Call self:UpdateWhilePaused(false) on the widget/screen, and on any child widgets that need to pause when the game is paused.
  • Call AnimState:AnimateWhilePaused(false) on any widgets that have an AnimState.

If you want your screen to autopause the game, you must do the following:

  • Add the following code to the constructor of your screen:
    • SetAutopaused(true)
  • Add/Create the following to the OnDestroy function of your screen:
    • SetAutopaused(false)
  • If the top center of your screen is being used, you can move the server paused text to somewhere else by adding this function to your screen:
    • function YourScreen:OffsetServerPausedWidget(serverpausewidget)
    • And then call serverpausewidget:SetOffset(x, y) inside the function.


In Game Chat:
Changes:

  • Announcements and Skin Announcements will now show up in the chat queue instead of at the top of the screen.
  • Announcements and Skin Announcements will now show up in the lobby chat window.
  • Chat now has a history of the last 100 messages, and can be scrolled to view those messages.
  • Chat history will persist between the character select screen, forest, and caves.
  • Messages sent while a player is traveling between the caves or forest will be received when the player finishes loading.

Other Changes:

  • The Bee Queen Crown can now be deconstructed.
  • Reduced the ingredients for crafting the Premier Gardeneer Hat
  • Changed the ingredients for crafting the Cookbook and it no longer requires a Science Machine to prototype.
  • Improved the Pick/Axe’s durability and damage.

Bug Fixes:

  • Fixed a bug where Wigfrid would gain inspiration twice when using ranged attacks
  • Wigfrid now properly calculates inspiration based on the actual damage done. This means buffs, debuffs, and electric damage now affect her inspiration gain. The target’s buffs and protective states, like a hiding Slurtle, will also affect her inspiration gain. Note: The inspiration gain rate has been adjusted to account for her natural +25% damage multiplier.
  • Fixed a bug where the Winged Sail would not save/load its state when built on land.
  • Fixed a bug where spiderdens on boats could grow again if you removed den decorations from them.

 

View full update

 

 

the best part was this 

  • Haha 6
Link to comment
Share on other sites

5 minutes ago, zarklord_klei said:

 

  Reveal hidden contents
  • You can hide the darkened pause underlay via the console command:
    • Profile:SetHidePauseUnderlay(true)
  • You can enable and disable the Console Command Screen auto-pausing separately in the Advanced menu in settings.
  • When the game is paused, you can run the command TheNet:AdvanceFrame() to make the game advance forward one Update(dt) call.
  • The game now has a new update loop: StaticUpdate(dt), StaticUpdate will run regardless of the game being paused.
    • Components now also have support for a OnStaticUpdate call, but this will only be executed when the game is paused, and will be skipped when the game is unpaused.
  • There is a new Scheduler called staticScheduler, this Scheduler is identical to the normal scheduler, except that it runs on the StaticUpdate loop, and not the Update loop, meaning it will update while the game is paused.
  • EntityScript now has a DoStaticPeriodicTask and DoStaticTaskInTime functions, these are identical to their non-static counterparts, except that because they run on StaticUpdate, they will run even when the game is paused.
  • All widgets and screens will now use DoStaticPeriodicTask and DoStaticTaskInTime by default.
  • Widgets and screens also have a DoSimPeriodicTask and DoSimTaskInTime, which will pause and stop updating when the game is paused.
  • Widgets and screens have a new function called UpdateWhilePaused, which is by default called with true, if called with false, DoPeriodicTask and DoTaskInTime will now point to their Sim variants instead of the Static variants.
  • All widget OnUpdate(dt) calls will need to check TheNet:IsServerPaused() if their behavior should stop updating when the game is paused.
  • All AnimState’s have a AnimateWhilePaused function, by default all normal in game objects won’t animate while the game is paused, and all widgets and screens will animate when paused, you can use this call AnimState:AnimateWhilePaused(animate_while_paused) to set the correct behavior for your animations.

If your widget/screen should continue to behave normally while paused, you will need to make all the following changes to it:

  • Replace any reference to scheduler with staticScheduler.
  • Replace any call to GetTime with GetStaticTime.
  • Replace any call to GetTick with GetStaticTick.

If your widget/screen should pause when the game pauses, you will need to make the following changes to it:

  • If you have an OnUpdate(dt) call, add the following to the first line in the function:
  • TheNet:IsServerPaused() then return end
  • Call self:UpdateWhilePaused(false) on the widget/screen, and on any child widgets that need to pause when the game is paused.
  • Call AnimState:AnimateWhilePaused(false) on any widgets that have an AnimState.

If you want your screen to autopause the game, you must do the following:

  • Add the following code to the constructor of your screen:
    • SetAutopaused(true)
  • Add/Create the following to the OnDestroy function of your screen:
    • SetAutopaused(false)
  • If the top center of your screen is being used, you can move the server paused text to somewhere else by adding this function to your screen:
    • function YourScreen:OffsetServerPausedWidget(serverpausewidget)
    • And then call serverpausewidget:SetOffset(x, y) inside the function.

 

NICE

Link to comment
Share on other sites

HOOOOOOLY MOOOOLY THAT'S A LOT OF GOOD STUFF

 

Is this... The time? Where I can go to the bathroom during my solo world? Is it really???

The auto pause during viewing map will be something to get used to, as looking at map while sailing is super useful. But since it's toggle-able I don't think that's gonna be a problem. 

And more chat! That's real good, gonna be useful on pubs a lot :D

Thank you for your hard work, this is amazing! 

  • Like 3
Link to comment
Share on other sites

Klei!! For God's sake, to this day I'm waiting for you to add an emote menu to the game chat. I have ALL the emotes available, I bought everything, and I don't use it for anything, because it's the name you put it, and it's a lot of name to remember ;-;

  • Like 6
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
  • Create New...