23.10.1

General

  • Add a new Script Fx Level setting to video options which can be used by scripts to disable performance intensive visuals.

  • Spikes and dust are rendered on invisible tiles.

  • Escape from the login menu will login as guest.

  • Fix tire hitboxes persisting after death.

  • Fix double splits in multiplayer.

  • Improve checkpoint performance on maps with large embeds.

Editor

  • Invisible tiles are visible in the editor.

  • Invisible tiles can be placed with the tile tool.

  • Add map option to persist particle settings with levels/checkpoints.

  • Rectangular Dustmod triggers.
    • Use the Aux key to toggle.

    • Alt to scale from centre.

  • Resizing and changing trigger shapes can now be undone.

  • Ctrl+Shift+Z can now also be used for redo.

  • Fit music trigger list size to screen.

  • Directly copy and paste fog colours by right clicking and alt+right clicking on layer swatches.

  • Remember script editor scroll position and array indices across compiles.

  • Draw tile tool marker while holding Alt.

  • Disable saving in play mode.

  • Remove reset all props scale shortcut key.

  • Allow prop etc. tools to function when GUI panels are hidden.

  • Fix tile tool cancelled when released over GUI.

  • Fix angle snapping for ranged circle controls.

Dustscript API

  • Layer annotation improvements:
    • Shift, Control, and Alt can now be used to snap coordinates to increments 48, 24, and 12 respectively.

    • A sublayer can optionally be specified with the format LAYER.SUBLAYER

    • LAYER or SUBLAYER can point to a variable by prefixing with an equal sign, e.g. =layer_var_name.10 will read the layer value from a variable called layer_var, and use a value of 10 for the sublayer.

    • If LAYER is set to selected, the currently selected layer in the editor will be used.

    • snap If set forces a specific increment to snap the coordinates to.

    • round Can be down/-1 or up/1 to round down or up when snapping.

    • tiles If present will return the tile index under the mouse.

    • relative If present coordinates will be relative to the trigger/entity this property belongs to.

  • Add API to change sub layer scale and visibility.

  • Add key_check_double.

  • Add direct player input access through camera::input_* methods.

  • Add access to the particle system settings.
  • Add on_video_settings_change callback.

  • Add get_script_fx_level and get_video_settings methods to read user video settings.

  • Add various fog_setting improvements.
    • create_fog_setting() functions

    • Added has_sub_layers

    • Added layer_colour and default_colour for getting and setting the default sublayer colour.

    • Added layer_percent and default_percent for getting and setting the default sublayer percent.

    • Added copy_to and copy_from for copying to and from cameras, fog triggers, and other fog_settings.

  • Add new methods for changing fog, music, and ambience.
    • camera.change_fog

    • camera.change_music

    • camera.change_ambience

  • Add new ai_controller class.
    • controllable.ai_controller() returns the controllable’s current controller.

  • Add get_emitter_type_id and add_particle_burst methods.

  • Fix draw_line_world and draw_line_hud rounding down the line width, now allowing allowing non-integer thickness.

  • Fix non-allocating version of ray_cast_tiles incorrectly allocating new tileinfo objects.

Editor API

  • Add on_editor_start which gets called after persisted variables have been loaded in the editor.

  • Add setters for the selected entity and trigger in the editor.

  • Add access to selected editor tile and prop set.
    • get_tile_sprite and set_tile_sprite

    • get_prop and set_prop

  • Add triggers_visible and cameras_visible methods to check the visibility of the trigger and camera layers in the editor.
    • Convenience methods editor_triggers_visible and editor_cameras_visible to scripttrigger and scriptenemy

  • Add gvb_to_vk and vk_to_gvb methods to convert between global virtual buttons and key codes.

  • Add entity editor callbacks
    • editor_entity_on_create

    • editor_entity_on_add

    • editor_entity_on_remove

  • All whitespace inside annotations is now ignored, so it’s now possible to split longer annotations across lines.

  • Allow unescaped alternate quotes inside attributes. (e.g. in [“can’t”] the single quote now doesn’t need to be escaped.)

  • Correctly support [option] ids that are non-sequential or non-zero based.

  • Integer [option] s without values will now auto increment starting at zero, or from the last defined value.

  • Reduce default tooltip scale, and add tooltip attribute scale option.