Information on Blockland DLLs and DLL loaders with a few tools and other helpful links
Queuenard b4a35c372a libTSfuncs wrong description, linked old TSFuncs | 2 months ago | |
---|---|---|
BL-patcher.py | 3 years ago | |
README.md | 2 months ago | |
class_hierarchy | 2 years ago | |
issue_archive.txt | 7 months ago | |
known_functions | 2 years ago | |
mac_r2012_functions.tsv | 3 years ago | |
vftables | 3 years ago |
Formerly located at https://gitlab.com/Queuenard/blockland-DLL
List of Blockland DLL loaders and DLLs
Current Blockland version: r2033
Blockland DLLs can modify the game in ways not possible with add-ons and TorqueScript. They can be essentially add-ons on their own or resources for scripters to facilitate internal engine access. For example, how can I have a script detect if a player moves? Rather than polling every few milliseconds, a DLL can inject itself and trigger a TorqueScript callback whenever the engine detects a player movement.
I can't guarantee the safety of pre-compiled code or even of source code. Use at your own risk.
Blockland needs an entry in its import table to load external DLLs. While loaders (only one works now: RedBlocklandLoader.dll) provide a patched Blockland.exe, it is possible to generate your own:
or
The loader is attached to the Blockland process and loads DLLs located in a certain folder. For both of the known public loaders, modules are loaded from the modules/ folder and executed immediately before the engine calls Sim::init.
Available version - the version of Blockland that is provided by this repository. Put simply, it's normally a base executable with the respective DLL loader attached inside the import table.
Compatible version - the version of Blockland for which the DLL works, provided the attached Blockland executable has the respective DLL in its import table. Note that some DLLs may work in higher Blockland versions than the version distributed in the respective project.
Name | URL | Available version | Compatible version | Notes |
---|---|---|---|---|
RedBlocklandLoader | https://gitlab.com/Redo0/redblocklandloader | r2012 | r2033 ✓ | Provides an older Blockland version, but the DLL continues to work on r2033 with a patched-executable. |
RedBlocklandLoader (Eagle517) | https://gitlab.com/Eagle517/redblocklandloader | r2033 ✓ | r2033 ✓ | 3rd-party update for RedBlocklandLoader due to May 2020 game updates. |
BlocklandLoader | https://github.com/qoh/BlocklandLoader | r1997 | r2001 | Not updated and no longer working: Torque function signatures changed in May 2020. |
RedBlocklandLoader (Eagle517) is recommended and is currently maintained.
Compatible version - the highest Blockland version with which the DLL works, as confirmed by my own tests or as claimed by the project owner.
Ready-to-install - whether a compiled DLL is provided and ready for end-user installation. This does not indicate whether it works with the current version of Blockland.
Name | URL | Compatible version | Ready-to-install | Description |
---|---|---|---|---|
AuthUnlock | https://gitlab.com/Redo0/authunlock | ? | Yes ✓ | Lets you join internet games in offline mode. |
BinaryFileIO | https://github.com/Pah1023/BinaryFileIO | r2033 ✓ | Yes ✓ | Interact with files in binary mode using hexadecimal instead of strings |
BLsql | https://gitlab.com/Eagle517/blsql | r2033 ✓ | Yes ✓ | Interact with SQLite3 databses through TorqueScript |
BlLua3 | https://notabug.org/redo/bllua3 | r2033 ✓ | Yes ✓ | Simple Lua interface for TorqueScript (experimental) |
BLpython3 | https://notabug.org/Queuenard/BLpython3 | r2033 ✓ | Yes ✓ | Interface that can run Python scripts that interact with TorqueScript (experimental) |
DataChunker Fix | https://gitlab.com/Eagle517/datachunker-fix | r2033 ✓ | Yes ✓ | Fixes memory allocation bug. Particularly when many functions are defined. |
Float Precision | https://gitlab.com/Eagle517/float-precision | r2033 ✓ | Yes ✓ | Improves float precision in certain script scenarios |
Ghost Buddy | https://notabug.org/Queuenard/GhostBuddy | r2033 ✓ | Yes ✓ | Disables brick ghosting and ghosts bricks in an alternative way |
Ghost Limit Bypass | https://gitlab.com/Eagle517/ghost-limit-bypass | r2033 ✓ | Yes ✓ | Increases ghosting speed by maintaining "fast packet" mode permanently. |
Immediate Refocus | https://gitlab.com/Eagle517/immediate-refocus | r2033 ✓ | Yes ✓ | Improves speed of switching focus back to Blockland's window |
Move Handler | https://gitlab.com/Eagle517/move-handler | r2033 ✓ | Yes ✓ | A DLL that lets you see the moves of players and control the moves of AIPlayers. |
Move Projectile | https://gitlab.com/Queuenard/move-projectile | r2033 ✓ | Yes ✓ | A DLL that provides a TorqueScript callback for Projectile::processTick. |
Network Priority | https://gitlab.com/Eagle517/network-priority | r2033 ✓ | Yes ✓ | A DLL that allows for control of ghosting priorities for ghostable objects through TorqueScript. |
NoBrickTransitions | https://github.com/Electrk/NoBrickTransitions | r2033 ✓ | Yes ✓ | Removes the ugly white flash when planting bricks, the fade when changing a brick's color, and the fade when setting whether a brick is rendering. |
NoFocus | https://gitlab.com/Redo0/nofocus | r2033 ✓ | Yes ✓ | Stops Blockland from grabbing the focus when starting or leaving a server. Older DLL, but confirmed working for r2033 as this DLL only interferes with external function calls. |
No Sleep | https://gitlab.com/Eagle517/no-sleep | r2033 ✓ | Yes ✓ | Stops Blockland from running slower in the background |
Object Collision | https://gitlab.com/Eagle517/object-collision | r2033 ✓ | Yes ✓ | A DLL that provides a TorqueScript callback every time an object collides. |
On-Game-Tick | https://gitlab.com/Eagle517/on-game-tick/ | r2033 ✓ | Yes ✓ | Adds a TorqueScript callback that gets called every tick |
PackageAnyFunction | https://gitlab.com/Queuenard/packageanyfunction | r2033 ✓ | Yes ✓ | Lets you package or overwrite any function from TorqueScript. |
Player Data Fields | https://gitlab.com/Eagle517/player-data-fields | r2033 ✓ | Yes ✓ | Change datablock variables on individual Player objects |
Projectile Curves | https://gitlab.com/Eagle517/projectile-curves | r2033 ✓ | Yes ✓ | A server- and client-sided implementation of curving projectiles. Particularly used on BCS servers. When used with a client, this allows for accurate projectile movements. |
Precise Timer | https://gitlab.com/Queuenard/PreciseTimer | r2033 ✓ | Yes ✓ | Track the execution time of TorqueScript code. |
Precipitation | https://gitlab.com/Eagle517/precipitation | r2033 ✓ | Yes ✓ | A DLL that makes precipitation in Blockland collide with bricks that have raycasting on. This affects your client only. |
Render Optimizations | https://gitlab.com/Eagle517/render-optimizations | r2033 WIP | No | A work-in-progress DLL that increases overall 3D rendering performance |
Selective Ghosting | https://gitlab.com/Eagle517/selective-ghosting | r2033 ✓ | Yes ✓ | A DLL that allows you to ghost individual objects to clients in Blockland. |
Shapename Data | https://gitlab.com/Queuenard/shapename-data | r2033 ✓ | Yes ✓ | A DLL that records shapename data in Torque variables. This can be used to record screenshot metadata. |
Texture Bleed | https://gitlab.com/Eagle517/texture-bleed | r2033 ✓ | Yes ✓ | A DLL that modifies texture behavior with regards to edges |
TraceBuddy | https://gitlab.com/Queuenard/TraceBuddy | r2033 ✓ | Yes ✓ | A DLL that adds custom "trace2" function and dumps recent trace log to file, even if the server crashes. |
Tracy | https://gitlab.com/Eagle517/bl-tracy | r2033 ✓ | Yes ✓ | A DLL that integrates Tracy for profiling TorqueScript |
Wine Fix | https://gitlab.com/Eagle517/wine-fix | r2033 ✓ | Yes ✓ | A DLL that modifies the console so it can work without wineconsole which was removed in Wine 5.18 |
Name | URL | Compatible version | Ready-to-install | Description |
---|---|---|---|---|
PlayerShadows | https://gitlab.com/Redo0/playershadows | B4v21 | Yes ✓ | Enables shadows for players all the time |
RenderDistance | https://gitlab.com/Redo0/renderdistance | B4v21 | Yes ✓ | Huge render distances in Blockland v20; Stops the game from crashing when rendering tons of terrain |
BLShadowLib | https://github.com/vitawrap/BLShadowLib | B4v21 | No | Allow shadows on bricks |
BLTerBlendLib | https://github.com/vitawrap/BLTerBlendLib | B4v21 | No | Fixes terrain lighting issue (pink slopes) |
DLLs that are abandoned and (likely or certainly) not working and no updated version exists.
Name | URL | Compatible version | Ready-to-install | Description |
---|---|---|---|---|
BlocklandJS | https://github.com/hatf0/blocklandjs | ? | Yes ✓ | (2018) BlocklandJS - a implementation of V8 in Blockland. Bad code included. |
NoFov | https://gitlab.com/Redo0/nofov | ? | Yes ✓ | Prevents the server from setting your FOV |
DLLs that no longer fit in one of the categories above, but used to belong there
Name | URL | Compatible version | Ready-to-install | Description |
---|---|---|---|---|
BL-GhostLimitBypass | https://github.com/Pah1023/BL-GhostLimitBypass | ? | No | ? |
BlocklandLua | https://github.com/qoh/BlocklandLua | ? | Yes ✓ | ? |
GhostLimitBypass | https://github.com/Visolator/Blockland---FastPacket-DLL | ? | No | Sustains "fast packet" mode after clients have spawned. |
PackageAnyFunction | https://gitlab.com/Redo0/packageanyfunction | r2005 | Yes ✓ | Lets you package or overwrite any function from TS. |
PlayerCollisionDLL | https://github.com/Visolator/Blockland---PlayerCollisionDLL | ? | No | Exposes Torquescript functions to change the typemask of a SimObject and therefore allows selective collision. |
SelectiveGhostingDLL | https://github.com/Visolator/Blockland---SelectiveGhostingDLL | ? | No | Exposes a function to Torquescript to change the net flags on a NetObject. |
TraceEnabler | https://github.com/hatf0/TraceEnabler | r2033 ✓ | No | A less laggy way to trace in TorqueScript. See "TraceBuddy" for something similar. |
Non-runnable libraries for developers
Name | URL | Description |
---|---|---|
libBLstructs | https://notabug.org/Queuenard/blockland-DLL-libBLstructs | Header-only library for Blockland DLL developers to handle known object layouts in memory |
libTSfuncs | https://notabug.org/Queuenard/blockland-DLL-libTSfuncs | C++ library of small functions for Blockland DLL developers to deal with MinHook and common Torque engine interfaces |
MinHook | https://notabug.org/Queuenard/blockland-DLL-MinHook | MinHook version typically used in Blockland DLL projects |
Libraries that no longer work or have more recently updated versions
Name | URL | Description |
---|---|---|
TSFuncs | https://gitlab.com/Eagle517/tsfuncs | Library for easily making DLLs for Blockland |
https://github.com/bansheerubber/torquescript-interpreter
An in-progress TorqueScript interpreter. Not necessarily related to Blockland.
https://github.com/Pah1023/BL-Browser-CEF
BL-Browser, which allows displaying of web content on print bricks. I do not know whether this functions and there isn't much documentation.
https://gitlab.com/Eagle517/blockland-registry-tool
"A simple Windows program to configure Blockland's registry keys"
https://github.com/Electrk/dso.js
DSO decompiler for Blockland
https://github.com/Electrk/bl-decompiled
Blockland's default scripts decompiled
https://github.com/hatf0/PSGFY
Python DSO decompiler for Blockland (dead link)
https://notabug.org/Queuenard/ObjectTrace
Work in progress memory allocation/deallocation journal