Skip to content

Releases: STBrian/LunaCore

LunaCore 0.20.0

26 Apr 20:37

Choose a tag to compare

Changelog

  • Added Game.World.message(msg: string)
  • Added Core.Keyboard.populate(options: table) -> integer
  • Added the following pattern search functions:
    • Core.Memory.searchU32(start: integer, size: integer, pattern: table) -> integer
    • Core.Memory.searchU16(start: integer, size: integer, pattern: table) -> integer
    • Core.Memory.searchU8(start: integer, size: integer, pattern: table) -> integer
    • Core.Memory.searchFloat(start: integer, size: integer, pattern: table) -> integer
  • Added a new version variant that uses LuaJIT for testing purposes
  • Fixed visual bug when changing an option in the plugin menu and the textbox saying "DISABLE" even if the option was already disabled
  • Improvements to hook system

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu
  • High: Trying to use Game.Resources.reloadLocale() after game load will crash the game

LunaCore 0.19.0

16 Mar 07:03

Choose a tag to compare

Warning: Changes that may break compatibility

Changelog

  • Added new core object type: MCToolTiers. Fields: MiningLevel, Durability, MiningEfficiency, DamageBonus, Enchantability
  • Added table for game tool tiers Game.Items.ToolTiers. Contains: WOOD, STONE, IRON, GOLD and DIAMOND
  • Added Game.Items.newToolTier(). Returns an empty MCToolTier
  • Added Game.Items.registerSwordItem(nameid: string, itemid: integer, tier: MCToolTier)
  • Added Game.Items.registerPickaxeItem(nameid: string, itemid: integer, tier: MCToolTier)
  • Added Game.Items.registerAxeItem(nameid: string, itemid: integer, tier: MCToolTier)
  • Added Game.Items.registerShovelItem(nameid: string, itemid: integer, tier: MCToolTier)
  • Added Game.Items.registerHoeItem(nameid: string, itemid: integer, tier: MCToolTier)
  • Renamed core types names: GameItem -> MCItem, GameItemInstance -> MCItemInstance
  • Improvements to hook system
    Note: Tools registered with a non-game default tier will have a repair item tied to the mining level

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu
  • High: Trying to use Game.Resources.reloadLocale() after game load will crash the game

LunaCore 0.18.1

15 Mar 05:15

Choose a tag to compare

Changelog

  • Fixed an error related to some functions not working properly when trying to check if one argument's type was an Enum type

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu
  • High: Trying to use Game.Resources.reloadLocale() after game loading will crash the game

LunaCore 0.18.0

09 Mar 02:31

Choose a tag to compare

Changelog

  • Added Game.LocalPlayer.getState(EntityState)
  • Added Game.World.Weather with possible Enum values: Clear, Rain, Thunder
  • Added new global Enums where all possible values of Enum fields will be stored. For Enum fields you can also use the name of the enum as a string to set a field
  • Added Enums.WeatherType table with fields Clear, Rain, Thunder and RainThunder. Use them to set the field Game.World.Weather
  • Added Enums.EntityState table. The following states are available: Burning, Sneaking, Sprinting, Eating, Invisible, Tempted, InLove, HasSaddle, IsAdult, Named, Tamed, Leaded, Sheared, ElytraFly. Use them in Game.LocalPlayer.getState()

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu

LunaCore 0.17.0

08 Mar 01:30

Choose a tag to compare

Changelog

  • Fixed behavior of filesystem open modes
  • Added Game.Resources.getLocale() that returns the current locale selected in the game
  • Added Core.getCurrentModname() that returns the name of the mod that is currently being loaded
  • Improved legacy Graphics API to avoid freezing in some scenarios
  • Added Object:isType(string) method to Core objects

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu

LunaCore 0.16.0

02 Mar 03:07

Choose a tag to compare

Changelog

  • Fixed freezing and other errors when trying to index Core object instances
  • Fixed menu option Toggle Block DPADLEFT and DPADRIGHT keys
  • Now changing the item of an InventorySlot can only be done by using the method InventorySlot:setItem(item,value?)
  • Added method FilesystemFile:getSize()
  • Script paths shown in error messages are now shorter for common directories (mods and scripts folders)
  • Improvements to Core object system
  • Improvements to Core module tables
  • Other fixes and improvements

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu

LunaCore 0.15.0

22 Feb 03:52

Choose a tag to compare

Warning: Changes that break compatibility

Changelog:

  • Fixed items not being changed correctly when modifying an inventory slot's item
  • Fixed deadlock/crash when failed to execute a script loaded from network
  • Added new submodule Game.Resources. Currently it only has one function: reloadLocale
  • Added Core.System.get3DSliderState
  • Improvements in Async system
  • Renamed Async.create to Async.run
  • Async.create now is used to create a new async task that can be connected to events
  • Added the ability for scripts to add menu entries by using the submodule Core.Menu:
    • getMenuFolder: Will return the root folder where scripts can add folders or entries
      • The returned folder can use the following methods:
      • newEntry: To create a new menu entry. When selected, it will execute the provided callback
      • newFolder: To create a new subfolder that is returned and can use the same methods as its parent
    • showMessageBox: Will show a message box in the menu
    • showAskMessageBox: Similar to message box but with user input that is returned as boolean
    • isOpen: May be useful in some cases to know if the menu is open
  • Additions to the Graphics API:
    • Added primitive objects that can be created with Core.Graphics.newRect | newLabel; that are more optimized to be drawn on screen while the game is still running
    • These objects can be added/removed for being drawn on screen with the functions Core.Graphics.add | remove
    • Both objects have the following methods:
      • setVisible: To hide/show it
      • setScreens: To choose on which screens to be drawn on
      • setPosition: Where to draw it
      • setColor: Set main color of the object
      • destroy: Release/destroy reference. It also removes any other reference to the object if it was added to being drawn
    • Check the API to know more about specific methods
  • Game debug info, warnings and errors will be logged in the log file. This can be helpful in some game crashes
  • Added back the strings for Exception type in the crash report; as well Game, Core and Plugin state strings
  • Added more info about the plugin in the About section
  • Removed crash screen. Now the luma display error function is used
  • Improvements to the logging system
  • Other fixes to improve stability and potential memory leaks

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu

LunaCore 0.14.0

05 Nov 21:55

Choose a tag to compare

Changelog:

  • Core will load mod names as lowercase to be more consistent with how the game manages ids. This shouldn't break any mods
  • Added Game.Recipes module
  • Added Game.Recipes.registerShapedRecipe function
  • Added Game.Items.getItemInstance mainly for usage with registerShapedRecipe for now
  • Added Game.Recipes.OnRegisterRecipes event that gives one value to the callback required for registerShapedRecipe function
  • Buttons from menu layout will now be added in the order as they appear in the json file
  • Now the default menu layout for LunaCore will be loaded from sdmc:/Minecraft 3DS/LunaCore/layouts/menu_layout.json instead of being hardcoded
  • Developer option to reload Lua environment will now reload mods too
  • Crash report format changed to only contain necessary info, to know more about the error, you'll need to parse the error code

How to install

  • Download the LunaCore.3gx file and move the file to the folder "/luma/plugins/<TitleId>/" of your sdcard
  • If you want the default LunaCore's menu layout, download LunaCoreAssets.zip and unzip it in the root folder of your sd card

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Low: Always present. Changing a block for an item (or vice versa) bugs the item render in hand
  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu

LunaCore 0.13.1

23 Oct 01:32
526b3bc

Choose a tag to compare

Changelog:

  • Added fields Dimension and Loaded to Game.LocalPlayer module
  • Fixed fields CurrentHunger and MaxHunger of Game.LocalPlayer not working properly sometimes
  • Fixed field FOV of Game.LocalPlayer.Camera.FOV not working properly sometimes
  • Changed error code format of the crash report
  • Other minor changes to the crash report

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior and be pretty annoying
Low: Doesn't break scripts logic but can have unwanted behavior

  • Low: Always present. Changing a block for an item (or vice versa) bugs the item render in hand
  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system
  • Mid: Sometimes present. Although it's less common, it is possible that when using this plugin the ZL and ZR buttons are not detected by the game and it may be necessary to restart the console or enable InputRedirection in Rosalina Menu

LunaCore 0.13.0

13 Oct 04:07

Choose a tag to compare

Warning: Breaking changes

Changelog

  • Moved Game.Event to Core.Event
  • Events have been moved from the Event module, now events are grouped into submodules according to their functionality
  • Moved event OnKeyPressed to Game.Gamepad.OnKeyPressed
  • Moved event OnKeyDown to Game.Gamepad.OnKeyDown
  • Moved event OnKeyReleased to Game.Gamepad.OnKeyReleased
  • Moved event OnKeyReleased to Game.Gamepad.OnKeyReleased
  • Moved event OnGameRegisterItems to Game.Items.OnRegisterItems
  • Moved event OnGameRegisterItemsTextures to Game.Items.OnRegisterItemsTextures
  • Moved event OnGameRegisterCreativeItems to Game.Items.OnRegisterCreativeItems
  • Added Memory signed variants functions
  • Write memory functions for unsigned values now will write the raw data if a negative value is passed instead of rounding it to 0
  • Added Core.Memory.malloc and Core.Memory.free to allocate raw memory for advanced use
  • Added Core.Memory.call function that allows to define a C function and call it if its offset is known (check examples)
  • Added Core._VERSION that tells the current version of the core in a formated string MAJ.MIN.PAT
  • Added Game.LocalPlayer.Position.add, Game.LocalPlayer.Velocity.add functions
  • Fixed Game.LocalPlayer.Position.get, Game.LocalPlayer.Velocity.get functions, now they will return 3 values instead of just one
  • Globals Game and Core should now be more protected from being overwritten
  • Added option to the plugin menu to toggle Lua memory usage display information, now memory usage will be hidden by default every time you start the game

Note: Working on the repo wiki

Known bugs

High: May break scripts or crash the game
Mid: Can break scripts logic or have unwanted behavior
Low: Doesn't break scripts logic but can have unwanted behavior

  • Mid: Sometimes present.Game.LocalPlayer.CurrentHunger offset can change breaking functionality, changing the world can fix it
  • Low: Always present. Changing a block for an item (or vice versa) bugs the item render in hand
  • Mid: Sometimes present. Game.LocalPlayer.Camera.FOV offset can change breaking some functionality
  • Mid: On some consoles the plugin may not detect the buttons ZL and ZR. This does not affect the game, only the scripting system