All changes Rebuilt made from Retail Blockland v20/v21 |
|
v2.12 |
- Added a whole lot of new ML text tags: '<h1>', '<h2>', '<h3>', '</h1>', '</h2>', '</h3>', '<font:Name>', '</color>', '</just>', '<b>', '</b>', '<u>', '</u>', '<i>', '</i>', '<size:#>', '</size>', '<ss>' and '</ss>' |
- Huge fancy overhaul of "Start a game" map list - now all map variations are collapsed into dropdowns, you can pin your favourite maps to the top of the list, and quickly search for maps! |
- Rebuilt Plate is pinned by default, pins are saved on your client |
- The window is sized much larger depending on your resolution, instead of always opening small |
- GIFs are now supported for mission preview... if you're crazy enough to do that |
- Integrated Client_WindowedConsole into game, added option for toggling back to old console style |
- Integrated Colorset Manager from RTB into default game |
- Various updates to AddonsGui to clean it up and fix bugs |
- Added AddBind and KAddBind to default scripts |
- Added backtrace to getSubStr |
- Added isInt function |
- StringArray: Added swap method |
- GuiCategoryListCtrl: Added pinned capabilities, bold text support, sort subchildren, new featureset. Fixed incorrect sizing |
- GuiContextMenuCtrl: Added getItemCount method |
|
v2.10 |
- Added GUI scaling!! All GUIs can no longer be really tiny on high res screens! |
- Adjustable in Options -> Advanced |
- CDN: Added addUINamesToDataBase and lookupFileNameForUIName console functions |
- Added functions isHostingServer and isConnectedToServer |
- GuiBitmapBorderCtrl: You can now choose to render children after the border by setting 'renderChildrenAfterUs' to 'true' |
- GuiSliderCtrl: Added 'prefix', 'suffix' and 'truncateLen' fields |
- Fixed cursor being centered after unlocking window |
|
v2.9 |
- Added the ability to forcibly not ghost to some clients |
- Added functions getSubStrJS and uGetSubStrJS |
- Added function isDirectory |
- Added ShowThingsUnderMouse console command, which lists all GUI elements currently underneath your cursor |
- Added 'plantError_Teams' graphic, still unused |
- Added autoScope and scopeAlways variables that you should define in the object declaration if you want them to be scoped automatically |
- Added ::setCanJet and ::getCanJet to Player class |
- Fix paintcan UI not showing all FX colors if colorset is too short |
|
v2.8 |
- Added Locale_French as default (Thanks vitawrap!) - play Blockland in French! |
- Added Locale_Spanish as default (Thanks Kokonut!) - play Blockland in Spanish! |
- Added getState method to CURLObject |
- Added a global trust system! Your brick trust is now tracked on your B4v21 account, and synchronizes between game installs! You can manage your global trust list on the website |
- Added messagebox queue system |
- Implemented Tribes 2 loading schema for version 43 interiors |
- Localization: Added functions IsBitmapIDLocalized and IsStringIDLocalized |
|
v2.6 |
- Added function whereis that tells you where functions were defined (which namespace, package, source file) |
- Added function find that helps you to find function names (use * for wildcard) |
|
v2.5 |
- Added functions getAllocatedMemoryUsage , getUnallocatedMemoryUsage , getTotalMemoryUsage |
- Added helper function getCommaNumber |
- The max view distance has been increased from 1000 to 4000! |
|
v2.2 |
- Added /clearmusic command |
- Added functions getURLProtocol , getURLDomain , getURLPort , getURLPath , getURLQuery and getURLFragment |
- Added function strMatch |
- GuiBackgroundCtrl: Added keepCached |
- Added GuiModalessProgressProfile default profile |
- Added GuiTextCtrl::getTextSize , getTextSizeFromFont and GuiControlProfile::getTextSize |
- ShapeBase: Sequences can now be played from a start position to an end position at a specific speed |
- StringArray: Added findIndex method |
|
v2.1 |
- Events: You can now use "setVehicle", "respawn" and "respawnVehicle" from "OnRelay" |
- GUI: Updated BlockWindow.png to have disabled buttons |
- GuiControlProfile: Added 'disabledButtons' field |
- Forcibly set current working directory to exe's path on startup. Can be disabled with '-portable' arg |
- MLText: Added getSanitizedTextIDArg function |
- Added uGetSubStr , uStrLen and uStrPos for UTF8 strings |
|
v2.0 |
- BL Rebuilt now runs as native 64-bit! |
- Entire localisation system added, letting you swap game language using language addon packs! |
- only English is included by default, but you can make your own custom languages - see the included "Locale_English" add-on to see how its done |
- the game now has far wider unicode support now, letting you use a far wider range of unicode characters |
- TorqueScript: Added "\u" escape sequence for unicode |
- Torque's CPU info method now retrieves CPU name properly |
- Torque's OS detection can now detect if running under Wine on linux |
- Added toggle in options menu for if to display seperate console window on game launch or not |
- ShapeBase: Implemented getThreadCount , getThreadSequenceName , getThreadSequencePos , getThreadSequenceSpeed , isThreadPlaying and isThreadPlayingForward . |
- GuiTextEditCtrl: Added Ctrl+A functionality, so you can now "select all" easily |
|
v1.8 |
- Added entirely new feature for bricks with missing brick icons to have icons generated for them automatically |
- Implemented as the add-on Client_RealBrickIcons so you can remove if wanted |
- Hovering over these with your mouse causes a 3d spin effect similar to Brickadia's brick menu |
- Removed the v20 demo brick restriction, now the demo functions just like modern v21 |
- Dedicated servers can now upload crash logs using the function UploadAllCrashLogs(); - feel free to do this to help us out in diagnosing server crashes |
- GuiButtonBaseCtrl: Implemented callback onMouseLeave |
- GuiControl: Implemented setScriptClassName and setSuperClassName |
- New function VectorCreateFromAzimuthElevation |
|
v1.7 |
- Added entirely new 3D view on the main menu, showing brick saves |
- Implemented as the add-on Client_MainMenuBuildShowcase so you can remove if wanted |
- Uses a custom save format 'blrs' which allows for defining custom stuff like camera properties, environment options, etc |
- Uses GuiCustomSceneCtrl, now updated to be able to render entire builds, render skybox and have much better camera control |
- Multi-threaded the Windows Console, so the game no longer slows down when printing a lot of new lines |
- Added much better color support, so for example errors are now properly printed red, etc |
- Added live progress bar for manifest generation |
- Can be disabled using -consoleNoThread if this causes problems |
- Added $Pref::Video::FrameLimit which limits the max FPS the game renders at, by default this is set to 300 |
- Added .GIF image support, on just GuiBitmapCtrl for now |
- Can be buggy at the moment - gifs can appear incorrectly or crash |
- Added entire new crash logging system to help us diagnose crashes |
- Generates crashlogs in 'crashlogs' folder |
- Asks if you wish to upload crashlogs to us automatically |
- Added outlinea tag for transparent outlines |
- Added new functions to help with Box3F calculations: BoxCreate , BoxEncapsulate , BoxCenter , BoxLen |
- Fixed fileCopy not working for files inside zips |
- New function getRandomF |
- New function mInt2Hex |
|
v1.5 |
- Added seperate music volume slider, letting you adjust music volume seperate from game volume, with additional mute buttons |
- Added isMusic argument for sounds to be affected by seperate music volume slider |
- Added minPitch and maxPitch to AudioProfile to let sounds have a random pitch variation each play |
- Fixed console input not working on Wine |
- Added /clearProjectiles |
- Implemented new feature setScreenFlash(duration in MS, ColorF start color, ColorF end color) to let you flash any color you'd like on clients rather than just red and white, can be used on GameConnection and ShapeBase |
- Increased font size limit from v20's default of 64 to 128 |
- Added ShapeBase::setShapeNameFx , allowing text fx to be used on ShapeNames |
- Removed direct damage clamp on projectiles, no longer limited to 100 max |
- GuiBitmapCtrl can now spin around and the bitmap itself can be flipped |
|
v1.4 |
- Added 'find' function for finding functions rather than only relying on tab autocomplete |
- New functions: getWelcomeMessageString(client) , getJoinMessageString(client) and getAdminLevelChangeString(client, rank, method) - re-define these to change these messages easily |
- Merged Event_Vehicle into main scripts (Thanks z0w0 for permission) |
- Fixed not being able to see first-person shapes in mirrors |
- ObjectAnimator: Add ShapeBase_SmoothRecolorNode layer |
- ObjectAnimator: Added ability to specify ease method |
|
v1.3 |
- Fixed the specularity of brickSIDE texture, so bricks look properly shiny now |
- addDamageType error now errors to console instead of announcing in in-game chat |
- Removed hardcoded admin requirement for Event_Zone events |
- New GUI class GuiVerticalListCtrl |
- New GUI class GuiBackgroundCtrl, is now used for main menu screenshot slideshow background |
- Added ability to host servers that aren't listed on the server list using pref $Pref::Server::PostToMasterServer, also with launch arg -noMasterServer |
- GuiTextCtrl: Added getPixelHeight method |
- enableWinConsole can now hide console window |
- Added NetObject::setIsGhostable , NetObject::getIsGhostable , NetObject::getCanAutoScope methods |
- Added Player::setJumpForce , Player::resetJumpForce and Player::getJumpForce methods |
|
v1.2 |
- Implemented Selective Ghosting |
- NetObject::setCanAutoScope(bool) controls whether an object can automatically be scoped to a client. If it's set to 'false', then you'll have to use NetObject::scopeToClient(client) to actually send it to a client |
- NetObject::scopeToClient and NetObject::clearScopeToClient have been updated to allow scoping / unscoping to all clients, not just local ones |
- Implemented Borderless graphics option, letting you have borderless fullscreen |
- AIPlayer: Added setMoveYaw , clearMoveYaw , getMoveYaw , getAimVector |
- Added text effect <fx:5> for swirly |
|
v1.1 |
- Added cool text effects: |
- <fx:1> for rainbow |
- <fx:2> for wavy |
- <fx:3> for shaky |
- <fx:4> for blink |
- <fx:0> to clear |
|
v1.0 |
- Later version of the mission editor is here, due to starting on a newer torque version (1.5.1) |
- Incorrect terrain color channels isnt present |
- Completely messed up animated lighting on interiors not present |
- Game no longer crashes when deleting the sky object, now you get similar framebuffer effect as v21 |
- Intentionally left out engine code to force game window focus (like when loading the main menu or when quitting a server) |
- Added pitched audio play methods (GameConnection::playPitched2D and GameConnection::playPitched3D) -- no longer have to constantly change timescale to play pitched sounds! |
- Implemented v21 FOV slider (changes live) |
- View distance limit isnt implemented, but game still crashes if too much terrain is rendered |
- Mirrors weren't removed from the engine, so they function again. Still buggy, slow and sometimes crashy though. These are disabled by default, you can enable in Options > Advanced |
- Functionality for v21 bot holes reimplemented back into the game |
- You can now embed bitmaps downloaded directly from online (uses URL rather than local filepath) |
- The game can now open png images larger than 2048px |
- Added extra downloading info when connecting to servers - telling you file transfer speed, filesizes and filepaths |
- Unhid the close and minimize buttons on the main game window |
- Big improvements to assert handling, fixing issues with the popup being unusable, and providing convenient ability to ignore various asserts |
- Implemented anti-aliasing option directly in the options menu |
- Implemented v21-like shaders back in alongside maps (not shadows though) |
- New functions getFunctionSourceName - returns the filename where the function / method is defined. Packaged functions return the package's filename. |
- Gravity vehicle code is now implemented in-engine, you can set completely custom gravity on individual vehicles |
- WheeledVehicle::setshiftinggravity(1); - enables "shifting gravity" effect, the same as "gravity jeep" add-on |
- the game also automatically applies this to vehicles which have the old gravity code, no need to update them |
- WheeledVehicle::setcustomgravity("x y z"); - sets a specific custom gravity |
- Reimplemented 'setmaxspeed' functions for specific players, just like v21 |
- New 'outline' text tag - <outline:(width of outline):(color in hex -- alpha not supported)> |
- If a dts shape fails to load, it fallbacks to error.dts |
- Ability to create new basic brick sizes mid-game implemented, along with automatically generating previews for them |
- New GUI class GuiCustomSceneCtrl - load in models and position them, mount objects and even spawn particles |
- New GUI class GuiContextMenuCtrl - absolute black magic, need to make this easily moddable |
- New GUI class GuiCategoryListCtrl - like a GuiTextList but fancier with category headers |
- Added /clearLights, /clearEmitters, /clearItems, /clearShapeFx, /clearColorFx |
- "fast packets" has been reimplemented, allowing for faster ghosting of bricks when loading into servers |
- gotoWebPage now opens the preferred browser, rather than typically internet explorer |
- Intentionally excluded raytracer - it didn't look great with maps, and there isn't much interest in reimplementing |
- Game no longer destroys the inputmanager every time you tab out, making tabbing in+out of the game instant |
- Implemented "Rebuilt Plate" - a map that functions just like the v21 plate, letting you customise all the environment options you can on v21 |
- New functions saveServerPrefs() , saveClientPrefs() and saveAllPrefs() - a more convenient method to save prefs |
- The ability to send new datablocks directly to clients mid-game has been implemented, where the clients download required assets before new objects are transmitted to them |
- RTB Mod Manager has been modified to let you enable add-ons mid-game |
- New method %client.isDownloadingFile() - Returns true if the client is downloading something mid-game |
- New method %client.hasObjectSafeguard(object or datablock id) - Returns true if the client cannot be ghosted the specified object / datablock at the moment due to downloading its dependencies |
- Mission objects inside of SimGroups within the main MissionGroup are now transmitted to clients properly, meaning some maps that used to require manual downloading can now be transmitted automatically |
- Added pref $Pref::Server::AllowUnstableError to allow you to remove the "Unstable" plant error |
- Reimplemented entire v21 gamemodes system, letting you use v21 gamemode addons without any modifications. |
- A ton of v21 functions and function edits were ported for compatibility, including all the new features of v21 minigames |
- updatedependencies() on playertype lets you change playertype models midgame |
- fxDTSBrick: getCustomWrenchData and setCustomWrenchData - Better way of handling custom wrench menu data |
- New function formatDateTime(DateTimeString) - Format a datetime string (like what is returned from getDateTime()) into a fancy format |
- New function formatTimeDifference(seconds) - Make a fancy string that tells how much time you inputted |
- New function ClearAllBricks(); for use on dedicated servers |
- Added ability to disable player collisions |
- "Play Music" audio setting now disables music on players and vehicles too |
- WheeledVehicle: added SetDatablock(datablock) which lets you change the datablock of vehicles live |
- Added /EnableBrickPlantAnimation |
- WheeledVehicle: added getWheelOpposite |
- GUIWindowCtrl: added onWindowResized callback |
- GUI Animation: added GlobalObjectAnimator object to help with animating UI elements. |
- New callback onClientUseFXCan(swatchIndex) - called when trying to use the spraycan and scrolling over an FX can entry (clientside only) |
- New callback onClientUseSprayCan(canIndex) - called when trying to use the spraycan (clientside only) |
- New callback onPlayerSpawn(client, player, firstSpawn) - called when a player spawns in (serverside only) |
- New function getClosestColorSetMatch(color) - gets the colorset index representing the closest match to the given color |
- Added "MoveHandler" functionality to the base game, so you can access players actual move actions |
- Completely new CURLObject class lets you make https requests - grabbing html or file data |
- OS string now actually says if you are running on Windows 10/11 rather than being empty |
- OS string (displayed in console log) now says if the user is running the game on Wine, and the Wine version its running on |
- New function mLerpF(easeMethodName, float start, float end, float normalizedValue[, float rangeMultiplier]) - with methods defined as $Math::Lerp* globals |
- New function addFileToManifest(fileName) - this lets you add any file to the manifest to be automatically transmitted to everyone, even mid-game. Similar functionality to "ExtraResources" addon script used in v21. |
- Toned down the plastic-like shine effect in the shaders from how it looks in v21 |
|
Changes ported from B4v21s v20 client |
- Updated OpenAL32 to a much newer version |
- Adjusted default server and client prefs |
- Added confirmation buttons to 'Quit' and 'Tutorial' buttons on main menu |
- Added ability to open the escape menu when loading into a game, instead of immediately quitting |
- Added extra fetch/find buttons to admin menu |
- Implemented tab shifting to the brick menu, instead of the tabs going off of the screen |
- Widened the playerlist GUI |
- Fixed issue where typing a message while spawning at the same time caused the text input to lock up completely |
- Added ability for newly installed add-ons to be enabled by default |
- Added sliders to the options GUI to adjust brick movement speed, edited brick movement code to support this |
- Fixed one of the sliders in the options menu being white for no reason. Very important |
- Set the default bind for UseLight to 'R' rather than 'L' |
- When loading music loops the console now logs when each datablock is about to be created, so it can be determined which loop is crashing the game. Also removed deleting stereo music files, and added a chat message if any loop is over the 1MB limit |
- Implemented Script_ClearSpam to the main game scripts |
- Merged the function within Support_PlayerPersistence to the base game |
- Changed a lot of default add-ons to their v21 versions, adding some small fixes |
- Edited v21 skis to no longer teleport the player on tumble/dismount |
- Included impact sounds in the base game instead of within Vehicle_Jeep, just like v21 |
- Changed print plates, vehicle spawn and roads to all be able to be built on, instead of getting "float" error |
|
Not included in release |
- Entire brick elevators system sorta implemented, allowing moving bricks carrying players |
- Somewhat fixed PathedInteriors (basically reimplemented entirely becuase the old code was so dysfunctional) |
- A very unfinished attempt at importing source engine bsps directly into the game |