This is a modified OpenSpades client(s). Below is an exciting demonstration video:

The most recent version of this mod is for the OpenSpades 0.1.1c client. Older versions of this mod can be found at the bottom of this post.

Here is a description & download for the OpenSpades 0.1.1c version of this mod:

Overall, this version of the mod has less features than the 0.0.12b version. That is because many of the features from the 0.0.12b version are already in vanilla OpenSpades 0.1.1c.

Most of the features I've added can be seen in the Setup->Game Options area. They are listed and described below:

OpenGL Effects:

Outlines/Outline Strength: Adds outlines to create an effect similar to cel-shading.

Textures/Multi-Texture Mode/Texture Strength:

Spoiler for Detailed explanation:

Textures on blocks can be turned on/off via "Textures". Furthermore, you can go into 'Multi-Texture Mode'. If you want to customize the textures, here is an explanation for how they work:

Without Multi-Texture Mode, a single texture is rendered on all blocks, this texture is in pak000-Base.pak\Textures\MapBlock.png.

With Multi-Texture Mode, an 8x8 texture atlas (pak000-Base.pak\Textures\MultiMapBlock.png) is used. Each block is mapped to a particular texture on this atlas by way of its color.

The position of a block's color on the above palette determines which texture on the atlas will be used. For example, black is mapped to the top-leftmost texture on the atlas, white is mapped to the bottom-rightmost texture on the atlas. Block's colors will be "rounded" to the "closest" of 64 different colors on the palette when determining which texture on the atlas to use.

Any resolution of textures will work so long as the resultant image is square and has power-of-two dimensions.

The last field is "Texture Strength", which determines the blending between the texture and the block color.

Spectator Tools:

Spectator Player Names: When you are on the spectator team (and alive), show names above player models.

1st Person Spectator Enhancements: When first person spectating a player, adds the following: Shows the reticle, shows the player scoping in, improves the player model.

Spectator Wallhack: This is meant to provide functionality similar to PUBOvl. When you are on the spectator team (and alive), a wallhack is enabled. There are some details to clarify about the wallhack:

Spoiler for Detailed explanation:

The wallhack will render players above everything else, including any non-player models.

Players are rendered with an outline, whose color is that of their team.

Visible players are rendered normally, with a lighter colored outline.

Non-visible players are rendered as black with a darker colored outline.

A player is 'non-visible' when his/her body (excluding gun models) is fully occluded. A player's body can be 'occluded by the map' or 'occluded by fog'. A player is 'occluded by the map' by being behind blocks. A player is 'occluded by fog' by being in a fog density of 99.99% or greater. Note that fog density calculation is done using OpenSpades. Different clients can calculate fog differently, so take 'occlusion by fog' with a grain of salt.

Misc:

Volume: Master volume control.

Some things aren't in setup that are changed:

Added the proper character limit to chat messages.

To use this you need to download Visual C++ Redistributable 2015 (unless you already have it). Then you just need to download/extract "OpenSpades-Mod-0.1.1c-Windows.rar" (at the bottom), and run it normally. This client also works with the fancy PNGSight mod, which can be set up via the instructions on the link.

In Sources.rar, I have attached the modified source code for all files that I've changed. All changes have been kept track of using // ADDED: and // MODIFIED: comments (version control is for amatuers). In Resources.rar are all the resource files I have either added or changed.

This is intended to function like PUBOvl. To use it, you must have Player Observe turned on. Then, when you switch to spectator team and have respawned, it will go into 'observe mode' for whichever player is selected with Player Observe No.

When in observe mode, it will show the 1st-person perspective for that player like in PUBOvl. You can use the left/right arrow keys to move between players. It will also have an ESP turned on, there are some details to clarify about the ESP:

The ESP will render players above everything else, including any non-player models.

Players are rendered with either a red or blue outline. A red outline is for enemies (of the observed player), blue for allies.

Visible players are rendered normally, with a lighter colored outline.

Non-visible players are rendered as black with a darker colored outline.

The ESP does not take gun models into consideration when determining if a player is visible or not.

The ESP does indicate sufficiently far away players as non-visible, but I believe it is 3-5 blocks generous in what it considers to be 'close enough'.

The remaining settings for player observe:

The setting Player Names in P.O. turns names on/off around players when in player observe.

The setting Show Team Colors makes the ESP use team colors instead of blue/red.

Note that this feature only works with the OpenGL renderer.

OpenGL Effects:

Outlines/Outline Strength: Adds outlines to create an effect similar to cel-shading.

Textures/Multi-Texture Mode/Texture Strength:

Spoiler for Detailed explanation:

Textures on blocks can be turned on/off via "Textures". Furthermore, you can go into 'Multi-Texture Mode'. If you want to customize the textures, here is an explanation for how they work:

Without Multi-Texture Mode, a single texture is rendered on all blocks, this texture is in pak000-Base.pak\Textures\MapBlock.png.

With Multi-Texture Mode, an 8x8 texture atlas (pak000-Base.pak\Textures\MultiMapBlock.png) is used. Each block is mapped to a particular texture on this atlas by way of its color.

The position of a block's color on the above palette determines which texture on the atlas will be used. For example, black is mapped to the top-leftmost texture on the atlas, white is mapped to the bottom-rightmost texture on the atlas. Block's colors will be "rounded" to the "closest" of 64 different colors on the palette when determining which texture on the atlas to use.

Any resolution of textures will work so long as the resultant image is square and has power-of-two dimensions.

The last field is "Texture Strength", which determines the blending between the texture and the block color.

Misc:

Volume: Master volume control.

Player Names in Spectate: Shows names on players when in spectate mode.

Some things aren't in setup that are changed:

Added the proper character limit to chat messages.

Loads all the audio/image resources on the load-screen so they aren't loaded while in the game.

Uses the recoil & spread values from OpenSpades 0.1.

To use this you need to download Visual C++ Redistributable 2015 (unless you already have it). Then you just need to download/extract "OpenSpades-Mod-0.0.12b-Windows.rar" (at the bottom), and run it normally. This client also works with the fancy PNGSight mod, which can be set up via the instructions on the link.

I have attached the modified source code for all files that I've changed. All changes have been kept track of using // ADDED: and // MODIFIED: comments. Also in Sources.rar is a text file containing info about any Resources that have been changed.

Oooo! I like the use where you can mess with the opengl features in - game which makes it interesting. The tracers on the map are so helpful considering in aos that is my best friend when playing arena. I'm pretty sure though that toggling the smoke and the grenade shaking the camera is already implimented in chameleon's version of OS. (NoLeafClover, I think?) and imo the cellshading(?) feature is already in iceball. Otherwise, me likey

Logged

Spoiler for unknown:

spy: not funny what is wrong with all of youomgjuxta: touchy, like his economy

spring: Glass is arguably not my least favorite member of staff at this exact moment

I've weeded out some substantial inefficiencies, but the lag is still persisting on some computers. The culprit is likely the OpenGL "occlusion query" that's done for determining if players are visible or not.

Some computers can handle the occlusion query better than others; I get a solid 60 fps with player observe, but other people are getting bad fps. Hopefully low fps in the player observe isn't much of a problem anyway, since the relatively low frequency of updates from the server causes things to look choppy regardless.

Still, there are some things I can do to optimize the occlusion query! Let us pray that helps, but if it doesn't, I don't know what more I can do.

btw if someone reports the ID of a hacker you can do /dd_poNum 5 (as an example) to observe ID 5, makes it a lot easier than hunting down the ID of a name in the scoreboard tbh. Extremely useful for admin'ing in the best client - OpenSpades (did I trigger anyone? no? okay)