batfoxkid / freak-fortress-2-rewrite Goto Github PK
View Code? Open in Web Editor NEWThe gamemode that's now also a standalone boss maker.
Home Page: https://forums.alliedmods.net/forumdisplay.php?f=154
License: GNU General Public License v3.0
The gamemode that's now also a standalone boss maker.
Home Page: https://forums.alliedmods.net/forumdisplay.php?f=154
License: GNU General Public License v3.0
edit: ok not crashing anymore after total server file regen with only recommended depend installed being tf2econdata (is actually required btw). will try with the others
edit2: ok no crash even with tfontakedamage, mustve been some other bs i had
yea
Steps to reproduce the behavior:
If applicable, add screenshots, videos, logs, to help explain your problem.
not sure if i have brain worms or something
also i get this on player spawn (even after fixing the crash):
L 08/29/2022 - 21:35:12: [SM] Exception reported: Invalid game event handle 0 (error 4)
L 08/29/2022 - 21:35:12: [SM] Blaming: freak_fortress_2.smx
L 08/29/2022 - 21:35:12: [SM] Call stack trace:
L 08/29/2022 - 21:35:12: [SM] [0] Event.GetInt
L 08/29/2022 - 21:35:12: [SM] [1] Line 209, freak_fortress_2/events.sp::Events_PlayerSpawn
After using weighdown the boss can no longer jump as the gravity is not reset to default values.
Steps to reproduce the behavior:
Waiting for players state was a function in 1.1.109 but it doesn't work rightnow.
On selecting "cycler" mode ability system doesn't switch rages at all. Instead, it does something strange - on enabling only one button, reload/special it just plays the switch sound, but on enabling two of them at the same time it switches buttons on HUD - pressing M3/R while [R] is displayed next to selected rage, changes [R] to [M3].
Steps to reproduce the behavior:
https://imgur.com/a/fE5SaJR
https://imgur.com/iUE8ExS
If a player uses eureka_teleport 1 in console when they have the eureka effect they can teleport to home.
Steps to reproduce the behavior:
This will remove the stun effect and on certain maps make an almost-uncatchable engineer.
Reposting this bug here from Discord.
Error: server falls flat on attacking any enemy during boss round as a boss - REDs attacking the boss seems to work fine.
Crashes with error:
[DHOOKS] FATAL: Failed to find return address of original function. Check the arguments and return type of your detour setup.
How to replicate:
Any additional plugins do not cause this - it happens even when everything is disabled except the plugins needed for gamemode to work.
Plugins list at the moment of removing everything:
01 "Admin File Reader" (1.11.0.6905) by AlliedModders LLC 02 "Admin Help" (1.11.0.6905) by AlliedModders LLC 03 "Admin Menu" (1.11.0.6905) by AlliedModders LLC 04 "Anti-Flood" (1.11.0.6905) by AlliedModders LLC 05 "Basic Ban Commands" (1.11.0.6905) by AlliedModders LLC 06 "Basic Chat" (1.11.0.6905) by AlliedModders LLC 07 "Basic Comm Control" (1.11.0.6905) by AlliedModders LLC 08 "Basic Commands" (1.11.0.6905) by AlliedModders LLC 09 "Basic Info Triggers" (1.11.0.6905) by AlliedModders LLC 10 "Basic Votes" (1.11.0.6905) by AlliedModders LLC 11 "Client Preferences" (1.11.0.6905) by AlliedModders LLC 12 "Freak Fortress 2: Rewrite" (Beta 7/2/2022) by Batfoxkid based on the original done by many others 13 "Fun Commands" (1.11.0.6905) by AlliedModders LLC 14 "Fun Votes" (1.11.0.6905) by AlliedModders LLC 15 "Nextmap" (1.11.0.6905) by AlliedModders LLC 16 "Player Commands" (1.11.0.6905) by AlliedModders LLC 17 "Reserved Slots" (1.11.0.6905) by AlliedModders LLC 18 "Simple Chat Processor (Redux)" (2.3.0) by Simple Plugins, Mini 19 "[TF2] TF2Attributes" ([email protected]) by FlaminSarge 20 "TF2 Utils" (0.19.1) by nosoop 21 "[TF2] Custom Attributes" (0.4.1) by nosoop 22 "[TF2] Econ Data" (0.18.2) by nosoop 23 "[TF2] OnTakeDamage Hooks" (1.2.0) by nosoop
Attribute 252 "damage force reduction" granted by this ability doesn't decay when player stop using the anchor ability
I don't know if you have the same thing, but please help, either it's my fault or something with the plugin, on changing the map every player can't enter to red or blue team, and then i need to spawn a bot to enter normally, please help.
sorry for my bad english.
Attribute 217 "sanguisuge" has no max overheal capacity whatsoever, consistent backstabs cause player have more than boss's max health
Tried to override max overhal capacity with different attributes but didn't worked
after winning a round, as the boss on my server, boss loses his weapon and puts himself in the t position, minions do the same thing
second bug; On the first round, the music turns on before the round begins
1.Select any bosses
2.Win Round.
second bug:
1.Play on first round as boss
2. Music will play before round begin.
https://www.youtube.com/watch?v=5_ZjIwurM8E&ab_channel=DemoSamedi
https://www.youtube.com/watch?v=Ul6DPuhBIX0&ab_channel=DemoSamedi
https://www.youtube.com/watch?v=VrNrB927T8I&ab_channel=DemoSamedi
Just like the title says. Old ff2bat_menu_abilities offers cooldownX
which applies cooldown to all 'spells' in the menu.
The lack of this feature prevents some of our bosses from being converted to new ff2r_menu_abilities.
I guess I can add the feature after some more source code investigation.
Accessing weapons changes when being a boss and pressing Back in the menu will throw an error.
I would fix the error myself If I knew the preferred way to detect the Back button being pressed.
Steps to reproduce the behavior:
0. Be a boss
!ff2
in chatView Weapons Changes
Back
L 10/01/2023 - 14:07:20: [SM] Exception reported: Property "m_iItemDefinitionIndex" not found (entity 0/worldspawn)
L 10/01/2023 - 14:07:20: [SM] Blaming: freak_fortress_2.smx
L 10/01/2023 - 14:07:20: [SM] Call stack trace:
L 10/01/2023 - 14:07:20: [SM] [0] GetEntProp
L 10/01/2023 - 14:07:20: [SM] [1] Line 900, tf_custom_attributes::FindWeaponSection
L 10/01/2023 - 14:07:20: [SM] [2] Line 272, tf_custom_attributes::Weapons_ShowChanges
L 10/01/2023 - 14:07:20: [SM] [3] Line 257, tf_custom_attributes::Weapons_ChangeMenuH
As #53 said back in Rewrite 1.1.110 - 1.1.112 described before, when using special_anchor the ability does not go away once you stop using it. This also will linger the next time when you play boss.
Steps to reproduce the behavior:
I made sure to update all my files and subplugins to see if that was the problem but it still persists.
Add more custom attributes that will allow to replicate weapons from the Unofficial FF2 - like shields blocking either one hit or working as an armor against boss's melee, and Short Circuit's stun/slow attribute.
Possibility to partially restore weapon stuff back from Unofficial. I'm not really happy to see stun on SC again, but being able to put it back would be very nice.
No need to put it inside the default weapon config - I've seen that you add only key things to keep things balanced, but having them on wiki and being served together with Rewrite would be very nice.
I would like to report a bug, from some update in sound_kill selection
when my boss kills for example scout plays sound on medic kill, I don't know if I am the only one who has this bug.
Sorry for my poor English
Btw Thanks Batfox For fixed my problem with red.
Edit: Sometimes i must just spawn again bot to ff2 gamemode work again.
There's a bug with BvB disabled that lets you enter to Boss (BLU side) and play with him. You will have minicrits (because it's 2 in the same time, haven't tested with other player, but Crit rules may apply), cannot heal you and the boss, etcetera.
Steps to reproduce the behavior:
Textures, sounds and models for the bosses are not loading correctly. Some of them appear in game as errors and other don't.
Flags arg seems not working, idk why but in naydef edit where added global cooldown, flags stopped working
Steps to reproduce the behavior:
Attribute 52 "backstab shield" doesn't block boss hits on shield
I tried to apply the attribute to both classname and index, so it isn't an override problem
I wanted to suggest a couple of things, but I decided to separate both things into different issues.
In short, I thought of suggesting to add more "global" config values (like "slot" and "buttonmode"), to give ability and make bosses more interesting. One of them is "required rage", that doesn't allow ability to execute if rage is lower than this value (for usage with ragemin and ragemax), and second one is "required health", that does the same but for hale's health.
When using a file beginning in '"t" with a backslash in my case a sound file, ff2:r will cause the file to not be used and won't be download.
Steps to reproduce the behavior:
L 10/02/2022 - 18:56:20: [freak_fortress_2.smx] [Boss] 'abe' is missing file 'sound\freak_fortress_2\oddworld ime_to_get_free.mp3' in 'download'
TF2 Console: Failed to create decoder for MP3 [ freak_fortress_2/oddworld ime_to_get_free.mp3 ]
If applicable, add screenshots, videos, logs, to help explain your problem.
https://i.imgur.com/JJkfe1F.png
Add any other context about the problem here.
Server won't download the file nor use it even if it was downloaded beforehand.
This problem does not happen when using a forward slash only when using backslash ex: "sound\freak_fortress_2\oddworld/time_to_get_free.mp3"
or "sound/freak_fortress_2/oddworld/time_to_get_free.mp3"
will download and play the file.
Back in unofficial ff2, crit-a-cola would give crits when using attribute 179 to make mini-crits into crits for your other weapons like your scattergun. However in rewrite this is not the case and theres no way to make this happen even when using "mod crit type glow" "2"
Steps to reproduce the behavior:
If applicable, add screenshots, videos, logs, to help explain your problem.
https://youtu.be/P7g998PU3aE
Add any other context about the problem here.
When using mana for abilities, current mana showing random numbers, even higher than it's desired capacity. But only using cooldowns for abilities doesn't cause any problem
Doesn't look like integer/float overflow
(BvB) So, this bug tends to remove one boss to another after each round from the blue team and moves them to red, it will continue this until there is no one anymore in blue.
Steps to reproduce the behavior:
No one will be able to join any team as soon there is no one in blue anymore.
When using a demo shield (ex. chargin' targe) with attribute 52, it can block one hit the first time you use it. But if the shield breaks and the next round starts, the shield wont come back and you cannot block a hit anymore. You can still charge though. One way to get back the shield is to switch classes then switch back to demoman
Steps to reproduce the behavior:
If applicable, add screenshots, videos, logs, to help explain your problem.
https://youtu.be/JeaaS0i16UM
Add any other context about the problem here.
It would be really usefull if abilities had "global", global cooldown for all abilities when ability usage
Whenever the boss rages theres a seemingly random chance that it crashes the server.
Steps to reproduce the behavior:
https://crash.limetech.org/5i2rzrftqvpw
https://crash.limetech.org/pc3rwotg2vki
https://crash.limetech.org/dj4aoqdglyvk
When using "ff2r_default_abilities" "rage_new_weapon" to get a flying guillotine, attribute "2" won't affect its damage.
Steps to reproduce the behavior:
When looking at the server's console, each hit will display "AddMultiDamage: g_MultiDamage.GetDamageForce() == vec3_origin"
It seems like changing the map during a round causes a crash
assuming its a issue of the plugin itself, dont think this matters but i tested this on the latest ff2 rewrite on windows
In issue #47 a request had been made to make sub-plugins load/unload in "freaks" which would be changed to another directory like "disabled". But when trying to do set "ff2_plugin_subplugins" to a directory inside a directory ("disabled/freaks" or "freaks/disabled"), the server crashes with many of the sub-plugins failing to load and being blamed/
Steps to reproduce the behavior:
Example of errors:
L 07/21/2023 - 19:58:38: [SM] Blaming: disabled/freaks/bill_abilities.smx
L 07/21/2023 - 19:58:38: [SM] Call stack trace:
L 07/21/2023 - 19:58:38: [SM] [1] Line 11, C:\Users\RavensBro\Desktop\knights of god\source mod and meta mod\sourcemod-1.5.1-hg3914-windows-ff2\addons\sourcemod\scripting\include\freak_fortress_2_subplugin.inc::GetThisPluginName
L 07/21/2023 - 19:58:38: [SM] [2] Line 33, C:\Users\RavensBro\Desktop\knights of god\source mod and meta mod\sourcemod-1.5.1-hg3914-windows-ff2\addons\sourcemod\scripting\include\freak_fortress_2_subplugin.inc::OnPluginStart
L 07/21/2023 - 19:58:38: [SM] [4] ServerExecute
L 07/21/2023 - 19:58:38: [SM] [5] Line 3116, freak_fortress_2/bosses.sp::EnableSubplugins
L 07/21/2023 - 19:58:38: [SM] [6] Line 1602, freak_fortress_2/bosses.sp::Bosses_CreateFromConfig
L 07/21/2023 - 19:58:38: [SM] [7] Line 1576, freak_fortress_2/bosses.sp::Bosses_CreateFromSpecial
L 07/21/2023 - 19:58:38: [SM] [8] Line 250, freak_fortress_2/gamemode.sp::Gamemode_RoundSetup
L 07/21/2023 - 19:58:38: [SM] [9] Line 362, freak_fortress_2/dhooks.sp::DHook_RoundRespawn
[SM] Plugin disabled/freaks/bill_abilities.smx failed to load: Error detected in plugin startup (see error logs).
The server uses some legacy sub-plugins and new rewrite sub-plugins
When a boss uses the medic class and the round ends the game doesn't revert you back to your desired class
Steps to reproduce the behavior:
Have a boss that's class is the medic
Play the boss
Finish the round
Currently airblast does not give rage like how unoffical ff2 had it by default and there isn't an option to give the boss rage on airblast. I think an option to set a % amount of rage per airblast would be a nice optional change. Maybe it could be set like a convar inside ff2rewrite.cfg
Grants another way to punish airblast spammers other than increasing airblast delay or ammo cost
If applicable, a code snippet of the feature and the source if it came from someone else.
Add any other context about the feature request here.
Using short boss cfg names wont recognize a boss character
Steps to reproduce the behavior:
Changing the boss cfg name to be longer appears to work just fine.
Using short boss cfg names in unofficial ff2bat works fine.
(image showing the F4 text not showing up, and the wave not started
I'm still investigating this issue, and getting the you (the owner of the plugin) to give this some attention may be useful into getting it fixed
In unofficial ff2, if the last few players were scouts the boss would gain rage based on how many scouts there are left on red. I'm suggesting the same thing but it could be different where you can select any class who is last left alive to let the boss gain rage.
Could stop stalling round with running away scouts
If applicable, a code snippet of the feature and the source if it came from someone else.
Add any other context about the feature request here.
When using super jump (special_mobility) with little charge will give you the about or the same forward force as charging super jump to full.
https://youtu.be/QKfi4u93h8Y
https://youtu.be/XcG9G3wK6HQ
Super jumping with low percentages can allow the boss to do a "dash" without charging high (this is much more noticeable when the "forward" arg is set much higher than default (ex."2.0 + (n * 0.000275)"). Making it so that super jump scales with percent won't allow bosses to perform a "dash" with low percentages. Optionally it could be toggle-able within "special_mobility"
If applicable, a code snippet of the feature and the source if it came from someone else.
First demonstration shows both tapping and holding super jump but without any vertical differences and then showing both again with a more open area.
Second is the same but with a higher "forward" arg number.
I wanted to suggest a couple of things, but I decided to separate both things into different issues.
One of them - this one - can be added when the rewrite will be a bit more stable.
In short, wanted to suggest an optional support for throwable sapper - for example ability to remove rage and slow hale when he is in radius of a sapper. Rage drain rate and slowdown can be configurable through custom attributes.
https://github.com/Chdata/TF2-Throwable-Sapper
Put subplugins in the disabled folder instead of the general plugins folder.
I'm looking at this rewrite and noticed that subplugins are just dropped in the general plugins folder where they will automatically be loaded.
I think you should have people put them in the disabled folder like disabled/freaks/something.smx, that way sourcemod won't automatically load all the plugins at startup.
WIth our FF2 installation, we have over 50 subplugins and it just makes things laggy when they all load at once now. So I think you should try and commit to this convention so they can be loaded on demand.
If applicable, a code snippet of the feature and the source if it came from someone else.
Add any other context about the feature request here.
Rage cloneattack no longer summons from blue team and still summons from spectators
Steps to reproduce the behavior:
If applicable, add screenshots, videos, logs, to help explain your problem.
https://youtu.be/fXW5QNJc8OU
Add any other context about the problem here.
Everytime a round starts, the console logs a lot about an invalid game event handle:
L 09/22/2022 - 18:06:00: [SM] Exception reported: Invalid game event handle 0 (error 4)
L 09/22/2022 - 18:06:00: [SM] Blaming: freak_fortress_2.smx
L 09/22/2022 - 18:06:00: [SM] Call stack trace:
L 09/22/2022 - 18:06:00: [SM] [0] Event.GetInt
L 09/22/2022 - 18:06:00: [SM] [1] Line 209, freak_fortress_2/events.sp::Events_PlayerSpawn
This is because freak_fortress_2/events.sp#L27 has the EventHookMode_PostNoCopy
flag which will cause a null event
Steps to reproduce the behavior:
(Working in a Pull Request)
Neither damage_penalty nor damage_bonus attribute are working on the weapons (melee weapons at the very least) - they all deal by default 100 damage. From what I heard from other users, it also do affect the other damage modifiers on weapon, like CARD: damage bonus attribute, except the "dmg penalty vs players" and "dmg bonus vs buildings" attributes.
Steps to reproduce the behavior:
I've had this bug before on both my test server, and a server I've been setting up for my friend - I'm not sure if this was fixed in the newest versions, but decided to still report it.
When using a heavy boss or any melee that allows you to attack with mouse2, you can teleport inside a player and instantly kill them if the attack is timed correctly. It does not matter how much stun is given upon teleporting
Steps to reproduce the behavior:
If applicable, add screenshots, videos, logs, to help explain your problem.
https://youtu.be/viPNKbMKiDc
Add any other context about the problem here.
The first error happens when you use rage_cloneattack and the second one when you die as a boss.
L 05/08/2022 - 02:24:54: [SM] Exception reported: Invalid Handle 0 (error: 4)
L 05/08/2022 - 02:24:54: [SM] Blaming: freaks\ff2r_default_abilities.smx
L 05/08/2022 - 02:24:54: [SM] Call stack trace:
L 05/08/2022 - 02:24:54: [SM] [0] ArrayList.FindValue
L 05/08/2022 - 02:24:54: [SM] [1] Line 1324, C:\Users\Suza\Documents\GitHub\Freak-Fortress-2-Rewrite\addons\sourcemod\scripting\ff2r_default_abilities.sp::Timer_RageTradeSpam
L 05/08/2022 - 02:26:03: [SM] Exception reported: Invalid timer handle 2fa00287 (error 3)
L 05/08/2022 - 02:26:03: [SM] Blaming: freaks\ff2r_default_abilities.smx
L 05/08/2022 - 02:26:03: [SM] Call stack trace:
L 05/08/2022 - 02:26:03: [SM] [0] KillTimer
L 05/08/2022 - 02:26:03: [SM] [1] Line 654, C:\Users\Suza\Documents\GitHub\Freak-Fortress-2-Rewrite\addons\sourcemod\scripting\ff2r_default_abilities.sp::FF2R_OnBossRemoved
L 05/08/2022 - 02:26:03: [SM] [3] Call_Finish
L 05/08/2022 - 02:26:03: [SM] [4] Line 51, freak_fortress_2/forwards.sp::Forward_OnBossRemoved
L 05/08/2022 - 02:26:03: [SM] [5] Line 2146, freak_fortress_2/bosses.sp::Bosses_Remove
L 05/08/2022 - 02:26:03: [SM] [6] Line 59, freak_fortress_2/gamemode.sp::Gamemode_RoundSetup
L 05/08/2022 - 02:26:03: [SM] [7] Line 333, freak_fortress_2/dhooks.sp::DHook_RoundRespawn
When trying to use a fresh compile of the rewrite, the dhooks gives an error when CTFPlayer::DropAmmoPack is being setup.
Steps to reproduce the behavior:
[DHOOKS] Function "CTFPlayer::DropAmmoPack" uses unsupported pass flags in argument "info". Flags are only supported for virtual hooks: line: 331 col: 4
[DHOOKS] Function "CTFPlayer::DropAmmoPack" uses unsupported pass flags in argument "info". Flags are only supported for virtual hooks: line: 331 col: 4
[SM] Exception reported: Function signature "CTFPlayer::DropAmmoPack" was not found.
[SM] Blaming: freak_fortress_2.smx
[SM] Call stack trace:
[SM] [0] DynamicDetour.FromConf
[SM] [1] Line 95, freak_frotress_2\dhooks.sp::CreateDetour
[SM] [2] Line 63, freak_fortress_2\dhooks.sp::DHook_Setup
[SM] [3] Line 272, freak_fortress_2.sp::OnPluginStart
If the line "flags" "byref"
is removed from "info" the error vanishes and plugin operates as normal (to my knowledge).
When a player is in spectator mode, using "rage_cloneattack" will summon in players who are in spectator mode to be spawned in.
Steps to reproduce the behavior:
If applicable, add screenshots, videos, logs, to help explain your problem.
https://youtu.be/Rloo-1zp4Tg
Add any other context about the problem here.
When using "rage_new_weapon" with a clipless weapon, after running out of ammo the weapon will still be held out and can be switched back to.
Steps to reproduce the behavior:
Clipless weapon behavior: https://youtu.be/HaWsdo-Sabs
Weapon with clip behavior: https://youtu.be/fiDsyFjcWIk
Add any other context about the problem here.
The title says it. If monoculus spawns and does damage, errors will be thrown.
Pretty funny to see that, since the original FF2 plugin suffered of similar monoculus issues for long time.
Steps to reproduce the behavior:
L 10/03/2023 - 13:56:44: [SM] Exception reported: Property "m_bOnlyIterateItemViewAttributes" not found (entity 211/eyeball_boss)
L 10/03/2023 - 13:56:44: [SM] Blaming: freak_fortress_2.smx
L 10/03/2023 - 13:56:44: [SM] Call stack trace:
L 10/03/2023 - 13:56:44: [SM] [0] GetEntProp
L 10/03/2023 - 13:56:44: [SM] [1] Line 755, freak_fortress_2/attributes.sp::Attributes_GetByDefIndex
L 10/03/2023 - 13:56:44: [SM] [2] Line 710, freak_fortress_2/attributes.sp::Attributes_FindOnWeapon
L 10/03/2023 - 13:56:44: [SM] [3] Line 371, freak_fortress_2/sdkhooks.sp::TF2_OnTakeDamage
L 10/03/2023 - 13:56:44: [SM] [5] Call_Finish
L 10/03/2023 - 13:56:44: [SM] [6] Line 129, scripting/tf_ontakedamage.sp::CallTakeDamageInfoForward
L 10/03/2023 - 13:56:44: [SM] [7] Line 83, scripting/tf_ontakedamage.sp::Internal_OnTakeDamage
I think it'd be beneficial to move away from attribute IDs and replace them with named attributes.
It's easier to understand what attributes a weapon has and it's faster to change the value, rather than having a number that doesn't make any sense unless you have the attributes spreadsheet at hand.
It's way easier to understand hands down. That would / could also be applied to boss weapons.
It's a system that we use and here is an example:
This is what it could look like if FF2-Re used a similar system:
We can easily keep the previous system by simply checking if it has a subsection. People wouldn't have to be forced to change every config if they're switching from FF2.
How exactly does adding CWX weapons work, and how do you define in config damage limit for "On Kill: do X" attributes?
Do you need to write every weapon manually in your weapon config instead of CWX's default system, or you can just add those weapon's names to your weapon config and freely add new attributes?
How do you write "On Kill: do X" damage stuff - is it sort of a specific attribute or it is a global ConVar?
when you are dead or in spectator, switch the view to the player who has the menu, you can see the menu
Steps to reproduce the behavior:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.