Click to Select [code]
#1
QoL suggestion for anyone copying scripts manually in code tags

On many forums where code is hosted there is a selection button so you don't have to manually scroll to select all the lines within the code.

I tested and simply right-clicking and doing a browser-based "select all" selects everything on the page, not just in the code

In my particular use-case I have 200+ lines of code and I'd imagine there's existing cubescript that is also similarly long if not longer

Code:
docsection [New] //---------------------------------------------------------------------------- docident [scalelight] [Scales nearest/selected light]; docargument [S] [Size change (percentage)] [] [0]; docargument [I] [Intensity change (percentage)] [] [0]; //---------------------------------------------------------------------------- docident [togglelockselent] [toggles isolated selection of an entity, where the entity is selected as the closest entity regardless of any closer entities.]; docremark [The desired entity must be the closest entity when making selection.]; //---------------------------------------------------------------------------- docident [filter_sel] [filters selections(s) to cubes matching at least one of the provided values]; docargument [T] [Type of filter applied to selection(s)] [] [0]; docargument [V] [Up to seven values to match, depending on the filter] [] [1]; docremark [The following filters are supported:]; docremark []; docremark [Textures:] docremark [FLOOR_T, WALL_T, UPWALL_T, CEIL_T, where V is the slot number]; docremark []; docremark [Heights:] docremark [FLOOR_H, CEIL_H, where V is the height]; docremark []; docremark [Types:] docremark [SOLID, HEIGHTFIELD, CORNER, SPACE, where (V > 0) is matching the type, and (V <= 0) excluding the type]; docremark []; docremark [Functions:] docremark [DISSOLVE, where V is the percent of cubes to randomly remove from the selection(s)]; docremark [SUBTRACT, where V is the number of selections to subtract from the selection(s)]; docremark [MERGE, where V is unused]; docremark []; docexample [filter_sel CEIL_T 0] [selects only cubes in the current selection(s) with the skymap as the ceiling texture]; docexample [] []; docexample [filter_sel DISSOLVE 80] [removes 80% of the selection(s) randomly]; //---------------------------------------------------------------------------- docident [filter_sel FLOOR_T] [filters selections(s) to cubes using one of the provided floor textures]; docargument [T] [Up to seven texture slots to match] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel WALL_T] [filters selections(s) to cubes using one of the provided wall textures]; docargument [T] [Up to seven texture slots to match] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel UPWALL_T] [filters selections(s) to cubes using one of the provided upper wall textures]; docargument [T] [Up to seven texture slots to match] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel CEIL_T] [filters selections(s) to cubes using one of the provided ceiling textures]; docargument [T] [Up to seven texture slots to match] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel FLOOR_H] [filters selections(s) to cubes with one of the provided floor heights]; docargument [H] [Up to seven heights to match] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel CEIL_H] [filters selections(s) to cubes with one of the provided ceiling heights]; docargument [H] [Up to seven heights to match] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel SOLID] [filters selections(s) to cubes that are/aren't solid]; docargument [V] [valid integer] [] [0]; docremark [V > 0 searches for solids, removing non-solids] docremark [V <= 0 searches for non-solids, removing solids] //---------------------------------------------------------------------------- docident [filter_sel HEIGHTFIELD] [filters selections(s) to cubes that are/aren't heightfields]; docargument [V] [valid integer] [] [0]; docremark [V > 0 searches for heightfields, removing non-heightfields] docremark [V <= 0 searches for non-heightfields, removing heightfields] //---------------------------------------------------------------------------- docident [filter_sel CORNER] [filters selections(s) to cubes that are/aren't corners]; docargument [V] [valid integer] [] [0]; docremark [V > 0 searches for corners, removing non-corners] docremark [V <= 0 searches for non-corners, removing corners] //---------------------------------------------------------------------------- docident [filter_sel SPACE] [filters selections(s) to cubes that are/aren't spaces]; docargument [V] [valid integer] [] [0]; docremark [V > 0 searches for spaces, removing non-spaces] docremark [V <= 0 searches for non-spaces, removing spaces] docremark [] docremark ["Space" cubes are cubes not matching any other unique type, e.g. heightfields] //---------------------------------------------------------------------------- docident [filter_sel DISSOLVE] [Removes P percent of selection(s) randomly]; docargument [P] [percentage of cubes to remove from selections(s)] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel SUBTRACT] [Subtracts the last N selections from all other selections]; docargument [N] [Number of selections to subtract] [] [0]; //---------------------------------------------------------------------------- docident [filter_sel MERGE] [Combines and condenses overlapping selections]; //---------------------------------------------------------------------------- docident [curtex] [Prints texture slot information of the selected cube, or the cube at X / Y]; docargument [P] [Position of texture to check] [FLOOR, WALL, UPWALL, CEIL, ALL] [0]; docargument [X] [X coordinate of cube to check] [optional] [0]; docargument [Y] [Y coordinate of cube to check] [optional] [0]; docremark [If no coordinate arguments are provided, curtex will list textures(s) for the currently selected cube]; docremark []; docremark [Note: Without x/y input, curtex works with the top-left cube of the most recent selection] docexample [curtex WALL] [prints the texture slot used for the wall of the selected cube]; //-------------------------------------------- docident [texname] [returns the filename of the selected cube's texture at position P] docargument [P] [Position of texture to return] [FLOOR, WALL, UPWALL, CEIL] [0]; docexample [echo (texname FLOOR)] [prints the filename of the selected cube's floor texture] //-------------------------------------------- docident [getcurtex] [returns texture slot number of the selected cube, or the cube at X / Y]; docargument [P] [Position of texture to return] [FLOOR, WALL, UPWALL, CEIL, ALL] [0]; docargument [X] [X coordinate of cube to check] [optional] [0]; docargument [Y] [Y coordinate of cube to check] [optional] [0]; docremark [If no coordinate arguments are provided, getcurtex will list textures(s) for the currently selected cube]; docremark []; docremark [Note: Without x/y input, getcurtex works with the top-left cube of the most recent selection] docremark []; docremark [Returns -1 on error]; docexample [getcurtex FLOOR 100 75] [returns the texture slot used for the floor at position 100/75]; //-------------------------------------------- docident [curheight] [Prints height information of the selected cube, or the cube at X / Y]; docargument [P] [Position of height to check] [FLOOR, CEIL, BOTH] [0]; docargument [X] [X coordinate of cube to check] [optional] [0]; docargument [Y] [Y coordinate of cube to check] [optional] [0]; docremark [If no coordinate arguments are provided, curheight will list height(s) for the currently selected cube]; docremark []; docremark [Note: Without x/y input, curheight works with the top-left cube of the most recent selection] docexample [curheight CEIL] [prints the ceiling height of the selected cube]; //-------------------------------------------- docident [getcurheight] [returns the height of the selected cube, or the cube at X / Y]; docargument [P] [Position of height to check] [FLOOR, CEIL] [0]; docargument [X] [X coordinate of cube to check] [optional] [0]; docargument [Y] [Y coordinate of cube to check] [optional] [0]; docremark [If no coordinate arguments are provided, getcurheight will return the height of the currently selected cube]; docremark []; docremark [Note: Without x/y input, getcurheight works with the top-left cube of the most recent selection] docremark []; docremark [Returns -255 on error]; docexample [getcurheight FLOOR 100 75] [returns the floor height at position 100/75]; //---------------------------------------------------------------------------- docident [undo_sel] [removes last N selection(s) from the list of selections]; docargument [N] [Number of selections to remove] [If no argument provided, a value of 1 is used] [0]; docexample [undo_sel 2] [removes the last two selections made from the list of selections.]; //---------------------------------------------------------------------------- docident [select_all] [removes all current selections and selects entire map area, including bounding walls]; //---------------------------------------------------------------------------- docident [equalize_sels] [levels the floor/ceiling of all selections, with the min/max height gathered from all of them]; docargument [T] [an integer denoting the type] [0 (floor), 2 (ceiling)] [0]; docremark [This differs from /equalize in that /equalize_sels levels all selections at once, rather than each selection having it's own min/max height] //---------------------------------------------------------------------------- docident [clearrecenttex] [clears the history of recent textures used in the current map]; //------------------------------------------------------------------- docident [cleanedit] [turns on/off clean edit mode]; docargument [V] [0(off)...1(on)] [] [0]; docremark [While editing in clean edit mode, objects/guides not normally visible remain unvisible] docremark [i.e. The grid guidlines, selection borders, entity sparkles, clips, playerstart arrows, and closest entity information are hidden] //------------------------------------------------------------------- docident [togglecleanedit] [inverses the on/off state of cleanedit]; //------------------------------------------------------------------- docident [savesel] [Stores the list of current selections to later be recalled by /reselect]; //------------------------------------------------------------------- docident [reselect] [Removes all current selections and selects the list of cubes previously stored with /savesel]; //------------------------------------------------------------------- docident [tex2front] [Brings the selected cube's texture slot used in position P to the front of its recent textures list]; docargument [P] [The position of the cube's texture to bring to front] [FLOOR, WALL, UPWALL, CEIL] [0]; docremark [tex2front works with the top-left cube of the most recent selection] //------------------------------------------------------------------- docident [paste_half] [Pastes the floor/ceiling of a previously copied selection, leaving the opposite half unmodified]; docremark [The choice of floor or ceiling is derived from which the player is looking at] //-------------------------------------------------------------------

I've seen several different options from MyBB so this seems reasonable to do though I confess I'm not personally familiar with MyBB

[Image: ezgif-com-gif-maker.gif]
Thanks given by:
#2
How easy would this be to install?
I don't see any reason not to import this functionality aside from the effort itself.

If we don't get this functionality, what would be the best way for end-users to append many lines of text to a configuration file? Would a .bat file be preferred? Does that work in other platforms? Wanting to make it as easy as possible (for now I can at least provide explicit directions for users)

Would be really cool if scripts could be on the XRD server and installed or even browsed for in-game in a future release
Thanks given by:
#3
Done
Thanks given by: Felix-The-Ghost
#4
v62
Thanks given by:
#5
Thank you XRD, so much nicer
Thanks given by: