Git Product home page Git Product logo

api's Introduction

Hollow Knight Modding API

build docs GitHub all releases

A Hollow Knight Modding API/loader. Uses MonoMod.

If you're a mod developer, there are examples in the repo.

Documentation can be found here.

Build

If you want to use the API, for making mods or using them, please use a release or the installer.

  1. Clone the repository!
  2. Copy the Managed folder from your Hollow Knight installation into the solution folder and name it Vanilla.
  3. Build the solution using an IDE or dotnet build.
  4. The result will be in OutputFinal

License

Distributed under the MIT license.

api's People

Contributors

alexriedl avatar badmagic100 avatar basedjellyfish11 avatar clazex avatar esipode2 avatar fifty-six avatar flibber-hk avatar iamwyza avatar itsmedoggo avatar k0hacuu avatar kaydeetee avatar kerr1291 avatar mandar1jn avatar natis1 avatar prashantmohta avatar pseudorandomhk avatar ricardosouzag avatar seresharp avatar sfgrenade avatar themulhima avatar yurihaia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

api's Issues

Add New Logging Options

Currently everything that uses ModLog is logged, but I think we should take a more "log4net/log4j" approach where there are multiple log levels that we can control through some sort of config.

These are pulled from log4net, so can be modified, but is a pretty industry standard set of levels

ALL
FINE
DEBUG
INFO
WARN
ERROR
OFF

Save+Exit resets the modlog

as the title states, save & exiting out of a save goes to the main menu, and on the way the modlog gets reset, making it rather difficult to debug situations that arise after a save+exit

`On.HealthManager.HPScaleGG.GetScaledHP` unhookable

Seems to be a type mismatch.

[ERROR]:[API] - System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Parameter #0 of hook for Int32 GetScaledHP(Int32) doesn't match, must be HealthManager+HPScaleGG& or related
[ERROR]:[API] -   at MonoMod.RuntimeDetour.Hook..ctor (System.Reflection.MethodBase from, System.Reflection.MethodInfo to, System.Object target, MonoMod.RuntimeDetour.HookConfig& config) [0x001d6] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.Hook..ctor (System.Reflection.MethodBase from, System.Reflection.MethodInfo to, System.Object target, MonoMod.RuntimeDetour.HookConfig config) [0x00000] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.Hook..ctor (System.Reflection.MethodBase from, System.Reflection.MethodInfo to, System.Object target) [0x0001d] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.Hook..ctor (System.Reflection.MethodBase method, System.Delegate to) [0x0000e] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.HookGen.HookEndpoint._NewHook (System.Reflection.MethodBase from, System.Delegate to) [0x00000] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.HookGen.HookEndpoint._Add[TDelegate] (System.Func`3[T1,T2,TResult] gen, TDelegate hookDelegate) [0x0003c] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.HookGen.HookEndpoint.Add (System.Delegate hookDelegate) [0x00000] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.HookGen.HookEndpointManager.Add (System.Reflection.MethodBase method, System.Delegate hookDelegate) [0x00028] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at MonoMod.RuntimeDetour.HookGen.HookEndpointManager.Add[T] (System.Reflection.MethodBase method, System.Delegate hookDelegate) [0x00000] in <beff6d47b190417a8587e20bb59e36bb>:0 
[ERROR]:[API] -   at On.HealthManager+HPScaleGG.add_GetScaledHP (On.HealthManager+HPScaleGG+hook_GetScaledHP ) [0x0000a] in <915008e642024ad18ef4886ccc1a1bd3>:0 

Create better method to do Main Menu UI management

Currently mods have to be responsible for finding a place in the UI in the main menu area and there is nothing that would stop Mod X from interfering with Mod Y. Need to determine a better way to handle this so that mods can peacefully co-exist.

this loader broke my controller

hi.... i have a generic directinput usb gamepad, i have to use xbox 360 control emulator (x360ce) to be able to use in many games, with this, my controller works flawlessly

... except with hollow knight that functions intermitently... i spent a year without being able to play HK because of this, until some time ago when i discovered Button Prompt Switcher ( https://steamcommunity.com/sharedfiles/filedetails/?id=2525497719 ), that says it fixes intermitent control

ok, so i installed the switcher (by replacing a modified Assembly-CSharp.dll file) and effectively it fixed my intermitent control, so i could came back to play HK! xD

..... until i installed scarab mod manager (what uses this lib) ... so my mods worked, but my old controller problem returns .... so i realized the mod overwrote my Assembly-CSharp.dll file again

i don't know what Button Prompt Switcher does to fix the intermitent controller... but seem that thing is not applied in kh-modding Assembly-CSharp.dll file ... so i cant have the better of both worlds, i have to choose between play HK plain without mods, or install mods but not being able to play :(

could you please also apply intermitent control fix yo your dll file so i could play with mods? .. thanks

p.s.: i have HK GOG version (i.e. no steam)

When is the next release planned ?

There are major fixes that have been merged into master that, IMO, warrant a release.

is there a reason for not creating a new release ?

Building doesn't work.

I might just be stupid, but I tried building this using the instructions, and can't figure out what I'm doing wrong. VSCommunity 2017 gives this error:
1>------ Build started: Project: PrePatcher, Configuration: Debug Any CPU ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1179,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.7.2" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: The "GenerateRuntimeConfigurationFiles" task failed unexpectedly.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\fang2\Documents\games\Hollow Knight (Gamepass)\PrePatcher\bin\Debug\net472\PrePatcher.runtimeconfig.json'.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.GenerateRuntimeConfigurationFiles.WriteToJsonFile(String fileName, Object value)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.GenerateRuntimeConfigurationFiles.WriteRuntimeConfig(ProjectContext projectContext)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.GenerateRuntimeConfigurationFiles.ExecuteCore()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.NET.Build.Tasks.TaskBase.Execute()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets(129,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext()
1>Done building project "PrePatcher.csproj" -- FAILED.
2>------ Build started: Project: Assembly-CSharp, Configuration: Debug Any CPU ------
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Assembly-CSharp". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "PlayMaker". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.AudioModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.ImageConversionModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.IMGUIModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.JSONSerializeModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.ParticleSystemModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.Physics2DModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.TextRenderingModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.UI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2110,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "UnityEngine.UIModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
2>Mod.cs(178,19,178,29): error CS1003: Syntax error, '(' expected
2>Mod.cs(178,77,178,78): error CS1026: ) expected
2>Mod.cs(180,19,180,22): error CS1003: Syntax error, '(' expected
2>Mod.cs(180,60,180,61): error CS1026: ) expected
2>Mod.cs(254,19,254,29): error CS1003: Syntax error, '(' expected
2>Mod.cs(254,75,254,76): error CS1026: ) expected
2>Mod.cs(256,19,256,22): error CS1003: Syntax error, '(' expected
2>Mod.cs(256,60,256,61): error CS1026: ) expected
2>ModGeneric.cs(45,32,45,33): error CS1525: Invalid expression term '='
2>ModGeneric.cs(176,38,176,39): error CS1525: Invalid expression term '='
2>ModGeneric.cs(197,19,197,29): error CS1003: Syntax error, '(' expected
2>ModGeneric.cs(197,79,197,80): error CS1026: ) expected
2>ModGeneric.cs(199,19,199,22): error CS1003: Syntax error, '(' expected
2>ModGeneric.cs(199,60,199,61): error CS1026: ) expected
2>ModGeneric.cs(221,19,221,29): error CS1003: Syntax error, '(' expected
2>ModGeneric.cs(221,81,221,82): error CS1026: ) expected
2>ModGeneric.cs(222,19,222,22): error CS1003: Syntax error, '(' expected
2>ModGeneric.cs(222,60,222,61): error CS1026: ) expected
2>ModHooks.cs(617,19,617,29): error CS1003: Syntax error, '(' expected
2>ModHooks.cs(617,68,617,69): error CS1026: ) expected
2>ModHooks.cs(619,19,619,31): error CS1003: Syntax error, '(' expected
2>ModHooks.cs(619,69,619,70): error CS1026: ) expected
2>Done building project "Assembly-CSharp.csproj" -- FAILED.
========== Build: 0 succeeded, 2 failed, 0 up-to-date, 0 skipped ==========

Mod menu seems weird when leaving via esc

When I open the mod menu (on 1.5, build 28), toggle an IToggleable mod and then close the menu by pressing Esc, it saves the state of the mod menu (so the mod menu says the mod is off) but doesn't do what it's supposed to (so the mod is still enabled). I'm not sure if this is a bug but it feels like you would want to make it so when the menu is closed, the actual settings match the settings on the menu.

ETA: when I open the mod menu again, the button state matches how I left it (so the IToggleable mod is marked as disabled, which is what I set it to, even though the mod is actually still enabled)

(I have the latest QoL installed, just in case that matters)

Mods with same suffix and dependency chain can fail to load.

Error message:

[ERROR]:[API] - System.Reflection.ReflectionTypeLoadException: Exception of type 'System.Reflection.ReflectionTypeLoadException' was thrown.
[ERROR]:[API] -   at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes(System.Reflection.Assembly,bool)
[ERROR]:[API] -   at System.Reflection.Assembly.GetTypes () [0x00000] in <9577ac7a62ef43179789031239ba8798>:0 
[ERROR]:[API] -   at Modding.ModLoader+<LoadModsInit>d__16.MoveNext () [0x001a8] in <c2a48dab016a4177be1ebaa8c1a99f48>:0 

The setup: I have two mods:

B.dll, which:

  • Defines a type SettingsBase
  • Defines a mod BMod : Mod

AB.dll, which:

  • Defines a type SettingsDerived : SettingsBase
  • Defines a mod AMod : Mod, ILocalSettings<SettingsDerived>

The error occurs exactly when I expect AMod to be loaded.

If I rename A.dll to C.dll, the issue fixes itself. There are no duplicate mods involved.

IMod instead of Mod

ModLoader.cs has the following:

if (!ty.IsClass || ty.IsAbstract || !ty.IsSubclassOf(typeof(Mod)))

Why does this check for typeof(Mod) instead of seeing if it has the IMod interface?
This way, instead of having custom Mod classes that implement IMod, every custom mod class has to derive from Mod, which is quite limiting imo.

Load order can mess up mods

As you probably know I'm working on Fyremoth. With the mod installer for 1.5 got released I decided to update to the latest modding API version and ran into an issue. This issue turned out to be SFCore loading after Fyremoth loads. This is why I'd like to request either the librar attribute to be brought back or to run some kind of dependency check when loading mods.

[Feature] Collapsible mod list

Hi, I'm trying to play modded HK on the Steam Deck, which is working great so far.
However, because of the smaller screen the list of installed mods when in the pause screen overlays a lot of the other mod UIs like benchwarp.
It would be great if there were some option to collapse the mod list so it only shows some info text to expand that list again in the top left.

I would like to even contribute this myself, however I was not able to find out where this mod list is implemented (if this is even the correct repository for this)

API Config File

This is required for #1. Need to be able to store things like logging levels and non-save-specific settings for the API (and ideally other mods).

HK Modding API doesn't seem to work with the latest game update on June 28 2021

White window with a progress bar and a red exclamation mark [ ! ] pops up momentarily then closes and the game never starts.

SplashScreenRedExclaim

This occurs with or without any DLLs inside the Mods folder.

Assembly-CSharp files were copied to the correct location, overriding the existing DLL.

Fresh installation of the game and ran verify files.

This can not be made on Linux/Ubuntu.

Sadly, this can not be compiled/build on linux, as the netframe work you are using, 3.5, is not available on linux. Even if it were, the commands you are giving do not work.
linux does not have a msbuild command, but instead, a dotnet build command. And even if you were to go into the project file, and change it from 3.5, to a 5, you get a new error instead, saying the version string was either too long, or too short. And this is all with the release variant of this api. If you instead clone the git, the version difference can be fixed, but you run into a whole new set of problems. I hope this gets fixed soon

The error you get, if you instad clone this git, change the version to v5, you get this error.
(37,9): error MSB3073: The command "mono PrePatcher.exe Assembly-CSharp.dll Assembly-CSharp-patched.dll" exited with code 1.

I will note, that the guide does mention to instead run wine instead of mono, but i don't know how to do that

Reporting a vulnerability

Hello!

I hope you are doing well!

We are a security research team. Our tool automatically detected a vulnerability in this repository. We want to disclose it responsibly. GitHub has a feature called Private vulnerability reporting, which enables security research to privately disclose a vulnerability. Unfortunately, it is not enabled for this repository.

Can you enable it, so that we can report it?

Thanks in advance!

PS: you can read about how to enable private vulnerability reporting here: https://docs.github.com/en/code-security/security-advisories/repository-security-advisories/configuring-private-vulnerability-reporting-for-a-repository

CanvasUtil Fonts

CanvasUtil.CreateFonts is not always called, so the CanvasUtil.TrajanBold and CanvasUtil.TrajanNormal fields are not always set. As a result, the second overload of CanvasUtil.CreateTextPanel fails.

Suggested fix: replace CanvasUtil.TrajanBold and CanvasUtil.TrajanNormal with properties that use CanvasUtil.GetFont.

1.5 Compatibility with libTAS

Hi I am trying to do TAS with 1.5 modding api installed. But looks like the loading time when starting the game (the progress bar) uses different number of frames each time making my key sequence replay failed. I want to update the api code to make the it constant, any idea which part should I update?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.