Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Basker_ville

#1
There's a bug that was introduced in RimWorld's latest patch (June 6th 2022 - v1.3.3387). In this patch several Ideology improvements and fixes were made. One such change created this situational but annoying bug.

The error only presents with Ideology active, and it concerns some mods which override "HediffComp.Notify_PawnDied()" in order to change or resurrect human pawns at the moment of their death. Examples include Witcher - Monster Hunt (lycanthropy), Vanilla Cooking Expanded (resurrecter condiment), and others.

When a member of the player's Ideology dies, and the Notify_PawnDied() override is triggered (leading to either a transformation or resurrection) a red error occurs:

Full Stacktrace of a colonist being killed and resurrecting immediately:
Error in Precept.Notify_MemberDied(): System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.RitualObligationTargetWorker_GraveWithTarget.LabelExtraPart (RimWorld.RitualObligation obligation) [0x0000b] in <81af9f8a18324e17b286924a43555a7c>:0
  at RimWorld.RitualObligation.get_LetterLabel () [0x00000] in <81af9f8a18324e17b286924a43555a7c>:0
  at RimWorld.Precept_Ritual.AddObligation (RimWorld.RitualObligation obligation) [0x00216] in <81af9f8a18324e17b286924a43555a7c>:0
  at RimWorld.RitualObligationTrigger_MemberDied.Notify_MemberDied (Verse.Pawn p) [0x0006e] in <81af9f8a18324e17b286924a43555a7c>:0
  at RimWorld.Precept_Ritual.Notify_MemberDied (Verse.Pawn p) [0x00025] in <81af9f8a18324e17b286924a43555a7c>:0
  at RimWorld.Ideo.Notify_MemberDied (Verse.Pawn member) [0x00011] in <81af9f8a18324e17b286924a43555a7c>:0
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
RimWorld.Ideo:Notify_MemberDied (Verse.Pawn)
(wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Kill_Patch4 (Verse.Pawn,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff)
(wrapper dynamic-method) Verse.Pawn_HealthTracker:Verse.Pawn_HealthTracker.CheckForStateChange_Patch2 (Verse.Pawn_HealthTracker,System.Nullable`1<Verse.DamageInfo>,Verse.Hediff)
(wrapper dynamic-method) Verse.Pawn_HealthTracker:Verse.Pawn_HealthTracker.AddHediff_Patch2 (Verse.Pawn_HealthTracker,Verse.Hediff,Verse.BodyPartRecord,System.Nullable`1<Verse.DamageInfo>,Verse.DamageWorker/DamageResult)
Verse.Pawn_HealthTracker:PostApplyDamage (Verse.DamageInfo,single)
Verse.Pawn:PostApplyDamage (Verse.DamageInfo,single)
(wrapper dynamic-method) Verse.Thing:Verse.Thing.TakeDamage_Patch5 (Verse.Thing,Verse.DamageInfo)
RimWorld.Verb_MeleeAttackDamage:ApplyMeleeDamageToTarget (Verse.LocalTargetInfo)
RimWorld.Verb_MeleeAttack:TryCastShot ()
Verse.Verb:TryCastNextBurstShot ()
Verse.Verb:WarmupComplete ()
(wrapper dynamic-method) Verse.Verb:Verse.Verb.TryStartCastOn_Patch2 (Verse.Verb,Verse.LocalTargetInfo,Verse.LocalTargetInfo,bool,bool,bool)
(wrapper dynamic-method) Verse.Verb:Verse.Verb.TryStartCastOn_Patch1 (Verse.Verb,Verse.LocalTargetInfo,bool,bool,bool)
RimWorld.Pawn_MeleeVerbs:TryMeleeAttack (Verse.Thing,Verse.Verb,bool)
Verse.AI.JobDriver_AttackMelee:<MakeNewToils>b__3_1 ()
Verse.AI.Toils_Combat/<>c__DisplayClass6_0:<FollowAndMeleeAttack>b__0 ()
Verse.AI.JobDriver:DriverTick ()
Verse.AI.Pawn_JobTracker:JobTrackerTick ()
Verse.Pawn:Tick ()
Verse.TickList:Tick ()
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch2 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
Verse.Game:UpdatePlay ()
Verse.Root_Play:Update ()


The red error occurs because the corpse in the crosshairs of Notify_MemberDied() immediately vanishes. After modifying one affected mod so that the pawn's corpse was retained, there was no longer a red error. However, that solution is itself a problem as it doesn't make sense thematically to retain the corpse.

I used a program to detect any differences in some portions of assembly between RimWorld v1.3.3387 (current) and the previous version. There were no changes in RitualObligationTargetWorker_GraveWithTarget or RitualObligationTargetFilter (which contain LabelExtraPart()) between versions. There was a change in RitualObligation between versions: notably the addition of "public string LetterLabel" which includes a reference to LabelExtraPart(). This section of code reads:

public string LetterLabel
{
get
{
string text = this.precept.obligationTargetFilter.LabelExtraPart(this);
string result;
if (text.NullOrEmpty())
{
result = "RitualOpportunity".Translate(this.precept.LabelCap);
}
else
{
result = "RitualOpportunityFor".Translate(this.precept.LabelCap) + " " + text;
}
return result;
}
}


This seems to be the discrepancy between versions which in some way leads to this error. I don't understand why it would be the problem, because it contains a conditional statement for null or empty text. Maybe this section of code is executed at a time inconvenient for this method of changing a pawn? Maybe it invokes LabelExtraPart() before RitualObligationTargetWorker_GraveWithTarget.ObligationTargetsValid() can validate the target? But if a pawn is just obliterated at once with explosives there's no issue, so I don't understand why in this instance the corpse vanishing is a problem.

Any suggestions on circumventing this issue?

Is there a way to simply exempt a pawn or a pawn's corpse, specifically if they have a certain hediff, from Ritual Obligations or the Member_Died() notification, without having to cut them out of the ideology entirely?
#2
Back in 2016 there was a forum post titled: "Could not get new name" endless loop in Vanilla. It was posted here in Mod Bugs but was found to be a vanilla issue. Has this bug reared its ugly head again?
Link: https://ludeon.com/forums/index.php?topic=20675.0

In the parameters of vanilla RimWorld I couldn't replicate this error, but the problem sometimes arises when mods use custom RulePackDefs referenced in CultureDefs or PawnKindDefs. Is this an underlying vanilla issue or a shared mod error?

After a certain buffer number of spawns, when a PawnKindDef is spawned which references a nameMaker/nameMakerFemale (via PawnKindDef) or a pawnNameMaker/pawnNameMakerFemale (via CultureDef), a red error appears in the console. Consecutive spawns past that present more red errors. The first line of the stack trace for one example reads:

Could not get new name (first rule pack: VFEC_NamerPersonClassicalFemale)

Despite the error, the pawn IS named correctly. The trouble is the barrage of red errors in the console.

To replicate:
0. Use either Qux's "Faction Samurai" or "Vanilla Factions Expanded - Classical"
1. Start New Game
2. Debug mode
3. Execute raid with faction...
4. Any of the Roman or Samurai factions (x10000 points)

After that bulk of spawns, this "buffer" will either be almost or slightly overcome. After repeating step 4, the console will be absolutely flooded with red errors.

Full StackTrace (of one VFEC example): https://pastebin.com/8LsyhAcM

HugsLib Log (after doing step 4 twice): https://pastebin.com/jGJxksEP


This error presents itself in several mods: "Vanilla Factions Expanded - Classical" and "Faction Samurai" are two examples, and it's a problem I myself ran into while making a mod. While VFEC and Faction Samurai use CultureDefs to name their units, I tried using CultureDefs, PawnKindDefs, and "Humanoid Alien Race" AlienRace.ThingDefs. I experienced the same issue as the two aforementioned mods with Culture and PawnKind Defs, but the race-based nameGenerator worked as expected with no such error.

Other Notes:
  • The buffer of spawns before any errors are generated. Generally one 10000 pt raid will slightly overcome the buffer, and it can also be overcome by individually spawning pawns. Adding more names in the string text file does not seem to affect this, but when I tried giving a PawnKindDef just one unique name, that PawnKindDef produced an error after just one spawn. Then after adding thousands of more entries to that file, that PawnKindDef still produced an error after only one spawn. Whatever size the buffer, errors don't occur until it is overcome, and then errors occur after every new spawn.
  • While rarely a pawn spawns with the wrong name, the pawn will almost always spawn with the correct name despite this error message.
  • Sometimes this error occurs multiple times per spawn.
  • The error log frequently refers to RulePackDefs for previously spawned units rather than for the unit that was just spawned. I was able to notice this point in my own unreleased mod with a variety of custom PawnKindDefs and RulePackDefs.

One example with VFEC's Central Republic:
First x10000 pt raid
   0 errors out of 108 new pawns
Second x10000 pt raid
   190 errors out of 178 new pawns

"Vanilla Factions Expanded - Vikings" after 15 x10000 point raids does NOT present this error. VFEV just uses pawnNameMaker through a CultureDef to name its units, unlike Faction Samurai and VFEC which use both pawnNameMaker and pawnNameMakerFemale. However, when I tried commenting out VFEC's pawnNameMakerFemale, the very first x10000 point raid uncharacteristically generated 78 red errors out of 174 spawns.

Name Generation - Referring to RulePackDefs:
   CultureDefs use <pawnNameMaker> and <pawnNameMakerFemale>
   PawnKindDefs use <nameMaker> and <nameMakerFemale>
   Races use <nameGenerator> and <nameGeneratorFemale>
*Many mods use <nameGenerator> in Humanoid Alien Races to generate names without this issue.

Normally it would take a long amount of time to hit the spawn buffer, so it's difficult to test this error without using debug mode commands. Has anyone using these mods with a long-running save file experienced this error?
#3
PawnKindDef fields allow for a lot of customization with variables like forcedHair, fixedGender, etc. but I'd like to also set body types, head tattoos, body tattoos, and facial hair for some custom PawnKindDefs. Is that something that can be done? If not would it be possible to make a comp for PawnKindDef that could achieve the same ends?
#4
I'm baffled by this NameGenerator bug that's been flinging red errors at me like crazy. Please help.

General properties of this error:
-Red Error: Could not get new name (first rule pack: *exampleRulePackDef*)
   just an example; specific error listed below
-Occurs when PawnKindDefs which use custom NameMakers are spawned
   (RulePackDefs referenced in either CultureDefs or PawnKindDefs)
   Using the nameMaker in Humanoid Alien Races worked fine with no errors
-Typically does not present until after >60 pawns have been generated.
-After the point when it first presents, it then presents a lot (after most following spawns).
-Occurs after debug action Spawns and debug action Executed Raids
-Does not usually prevent the proper naming of the newly spawned unit.
   The error is possibly in the web of relations a pawn is generated with?
   After disabling initial non-family relations in the PawnKindDef, the error still persists.
   After disabling all relationSettings in Humanoid Alien Races ThingDef_AlienRace, still errors.
      relationSettings doesn't include slaves.
-Sometimes the same error occurs multiple times per spawn
-The error frequently references RulePackDefs for previously spawned units rather than for the current unit spawned
   
Steps to replicate this error:
1. Have a PawnKindDef with a custom NameMaker and RulePackDef
2. New map
3. Debugmode ==> Spawn PawnKindDef around 60x (more or less)
or
3. Debugmode ==> Execute Raid > 10000 points (with the relevant faction)

Background:
I discovered this error while working on a mod that adds several races (using Humanoid Alien Races) and factions. When I produced RulePackDefs in order to give each faction their own NameMakers I became trapped in purgatory. First I tied the NameMaker to a custom CultureDef corresponding to a FactionDef. To try and escape the red errors I did away with the CultureDefs and tried using the nameMaker tag in PawnKindDef, but that was no escape at all.

I thought maybe there was something wrong with choosing the right name for the right gender, so I tried limiting it to just one NameMaker. Just the same errors.

I thought there was a problem with my RulePackDef or my namelist.txt, so I tried simplifying it so that the <rulesStrings> was simply <li>r_name->Example Name</li>. No dice, only errors, and now occurring after just the first spawn). That led me to think that the length of the string file .txt had something to do with it and I made a new file 2000 lines long. That too just gave more errors per spawn.

After trying a lot of other things I checked if the error was also present in the reference mods I used for making my RulePackDefs (one of which was a samurai faction mod). It was. I decided to report this error with this samurai mod instead of the one I'm working on because it seems to be the same exact error, it's already on the Steam workshop, and this modlist rules out a few other mods as possible conflicts. I set my modlist as:

Harmony
Core
Royalty
Ideology
HugsLib
Slave Outfits [1.3] (usgiyi.slaveoutfits)
Faction Samurai (qux.factionsamurais)

I used debugmode to spawn samurai. After the 66th spawn I was greeted again by this demonic error:

Stacktrace:
Could not get new name (first rule pack: nomsamuraif)
UnityEngine.StackTraceUtility:ExtractStackTrace ()
Verse.Log:Error (string)
RimWorld.NameGenerator:GenerateName (Verse.Grammar.GrammarRequest,System.Predicate`1<string>,bool,string,string)
RimWorld.NameGenerator:GenerateName (Verse.RulePackDef,System.Predicate`1<string>,bool,string,string)
RimWorld.PawnBioAndNameGenerator:NameResolvedFrom (Verse.RulePackDef,string)
RimWorld.PawnBioAndNameGenerator:GenerateFullPawnName (Verse.ThingDef,Verse.RulePackDef,RimWorld.Pawn_StoryTracker,Verse.RulePackDef,RimWorld.CultureDef,Verse.Gender,RimWorld.PawnNameCategory,string)
RimWorld.PawnBioAndNameGenerator:GeneratePawnName (Verse.Pawn,RimWorld.NameStyle,string)
RimWorld.PawnBioAndNameGenerator:GiveShuffledBioTo (Verse.Pawn,RimWorld.FactionDef,string,System.Collections.Generic.List`1<RimWorld.BackstoryCategoryFilter>,bool)
RimWorld.PawnBioAndNameGenerator:GiveAppropriateBioAndNameTo (Verse.Pawn,string,RimWorld.FactionDef,bool)
Verse.PawnGenerator:TryGenerateNewPawnInternal (Verse.PawnGenerationRequest&,string&,bool,bool)
Verse.PawnGenerator:GenerateNewPawnInternal (Verse.PawnGenerationRequest&)
Verse.PawnGenerator:GenerateOrRedressPawnInternal (Verse.PawnGenerationRequest)
Verse.PawnGenerator:GeneratePawn (Verse.PawnGenerationRequest)
Verse.PawnGenerator:GeneratePawn (Verse.PawnKindDef,RimWorld.Faction)
Verse.DebugToolsSpawning/<>c__DisplayClass1_0:<SpawnPawn>b__1 ()
Verse.DebugTool:DebugToolOnGUI ()
Verse.DebugTools:DebugToolsOnGUI ()
RimWorld.UIRoot_Play:UIRootOnGUI ()
(wrapper dynamic-method) Verse.Root:Verse.Root.OnGUI_Patch1 (Verse.Root)


Hugslib Log:
Log uploaded on Tuesday, May 17, 2022, 2:20:37 PM
Loaded mods:
Harmony(brrainz.harmony)[mv:1.3.0.0]: 0Harmony(2.2.1), HarmonyMod(1.3.0)
Core(Ludeon.RimWorld): (no assemblies)
Royalty(Ludeon.RimWorld.Royalty): (no assemblies)
Ideology(Ludeon.RimWorld.Ideology): (no assemblies)
HugsLib(UnlimitedHugs.HugsLib)[ov:9.0.1]: 0Harmony(av:2.2.1,fv:1.2.0.1), HugsLib(av:1.0.0,fv:9.0.1)
Slave Outfits [1.3](Usgiyi.SlaveOutfits): (no assemblies)
Faction Samurai(qux.factionsamurais): (no assemblies)

Active Harmony patches:
DebugWindowsOpener.DevToolStarterOnGUI: TRANS: HugsLib.Patches.DevToolStarterOnGUI_Patch.ExtendButtonsWindow
DebugWindowsOpener.DrawButtons: TRANS: HugsLib.Patches.DebugWindowsOpener_Patch.DrawAdditionalButtons
Dialog_Options.DoWindowContents: TRANS: HugsLib.Patches.Dialog_Options_Patch.ReplaceModOptionsButton
EditWindow_Log.DoMessagesListing: PRE: HugsLib.Patches.EditWindow_Log_Patch.ExtraLogWindowButtons
Game.DeinitAndRemoveMap: post: HugsLib.Patches.Game_DeinitAndRemoveMap_Patch.MapRemovalHook
Game.FillComponents: PRE: HugsLib.Patches.Game_FillComponents_Patch.GameInitializationHook
Game.FinalizeInit: post: HugsLib.Patches.Game_FinalizeInit_Patch.WorldLoadedHook
LanguageDatabase.SelectLanguage: PRE: HugsLib.Patches.LanguageDatabase_Patch.ForceRestartAfterLangChange
Map.ConstructComponents: post: HugsLib.Patches.Map_ConstructComponents_Patch.MapComponentsInitHook
Map.FinalizeInit: post: HugsLib.Patches.Map_FinalizeInit_Patch.MapLoadedHook
MapComponentUtility.MapGenerated: post: HugsLib.Patches.MapComponentUtility_MapGenerated_Patch.MapGeneratedHook
ModsConfig.RestartFromChangedMods: PRE: HugsLib.Patches.ModsConfig_RestartFromChangedMods_Patch.QuickRestartInDevMode
PlayDataLoader.DoPlayLoad: post: HugsLib.Patches.PlayDataLoader_Patch.InitModsHook
Root.OnGUI: post: HugsLib.Patches.Root_OnGUI_Patch.OnGUIHookUnfiltered
Root.Update: post: HugsLib.Patches.Root_Patch.UpdateHook
Root_Play.SetupForQuickTestPlay: TRANS: HugsLib.Patches.RootPlay_TestPlay_Patch.InjectCustomQuickstartSettings
UIRoot.UIRootOnGUI: post: HugsLib.Patches.UIRoot_OnGUI_Patch.OnGUIHook
VersionControl.DrawInfoInCorner: post: HarmonyMod.VersionControl_DrawInfoInCorner_Patch.Postfix
Harmony versions present: 2.2.1.0: net.pardeike.rimworld.lib.harmony; 2.1.0.0: UnlimitedHugs.HugsLib

Platform information: (hidden, use publishing options to include)

Log file contents:
Mono path[0] = '[Rimworld_dir]/RimWorldWin64_Data/Managed'
Mono config path = '[Rimworld_dir]/MonoBleedingEdge/etc'
Initialize engine version: 2019.4.30f1 (e8c891080a1f)
[Subsystems] Discovering subsystems at path [Rimworld_dir]/RimWorldWin64_Data/UnitySubsystems
GfxDevice: [Renderer information redacted]
Begin MonoManager ReloadAssembly
D3D11 device created for Microsoft Media Foundation video decoding.
Command line arguments: -savedatafolder=C:\Users\User\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios
RimWorld 1.3.3326 rev562
Save data folder overridden to C:\Users\User\AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios
[HugsLib] version 9.0.1
RandomElementByWeight with totalWeight=0 - use TryRandomElementByWeight.
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)

RandomElementByWeight with totalWeight=0 - use TryRandomElementByWeight.
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)

Unloading 5 Unused Serialized files (Serialized files now loaded: 2)

Unloading 58 unused Assets to reduce memory usage. Loaded Objects now: 16412.
Total: 143.099400 ms (FindLiveObjects: 0.627700 ms CreateObjectMapping: 0.241500 ms MarkObjects: 142.138700 ms  DeleteObjects: 0.091200 ms)

Unloading 3 Unused Serialized files (Serialized files now loaded: 2)

Unloading 20 unused Assets to reduce memory usage. Loaded Objects now: 16707.
Total: 152.081000 ms (FindLiveObjects: 0.631800 ms CreateObjectMapping: 0.340100 ms MarkObjects: 151.036200 ms  DeleteObjects: 0.072600 ms)

Initializing new game with mods:
  - brrainz.harmony
  - Ludeon.RimWorld
  - Ludeon.RimWorld.Royalty
  - Ludeon.RimWorld.Ideology
  - UnlimitedHugs.HugsLib
  - Usgiyi.SlaveOutfits
  - qux.factionsamurais
Unloading 0 Unused Serialized files (Serialized files now loaded: 2)

Unloading 0 unused Assets to reduce memory usage. Loaded Objects now: 20453.
Total: 186.515200 ms (FindLiveObjects: 0.865100 ms CreateObjectMapping: 0.418400 ms MarkObjects: 185.191300 ms  DeleteObjects: 0.040000 ms)

Could not get new name (first rule pack: nomsamuraif)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)

Unloading 3 Unused Serialized files (Serialized files now loaded: 2)

Unloading 3618 unused Assets to reduce memory usage. Loaded Objects now: 17671.
Total: 150.662700 ms (FindLiveObjects: 1.026000 ms CreateObjectMapping: 0.475300 ms MarkObjects: 145.310400 ms  DeleteObjects: 3.850400 ms)

Unloading 0 Unused Serialized files (Serialized files now loaded: 2)

Unloading 27 unused Assets to reduce memory usage. Loaded Objects now: 17716.
Total: 163.984900 ms (FindLiveObjects: 0.963100 ms CreateObjectMapping: 0.752700 ms MarkObjects: 162.072500 ms  DeleteObjects: 0.196000 ms)

Unloading 3 Unused Serialized files (Serialized files now loaded: 2)

Unloading 2 unused Assets to reduce memory usage. Loaded Objects now: 17840.
Total: 156.602900 ms (FindLiveObjects: 0.735500 ms CreateObjectMapping: 0.314300 ms MarkObjects: 155.483700 ms  DeleteObjects: 0.068900 ms)

Initializing new game with mods:
  - brrainz.harmony
  - Ludeon.RimWorld
  - Ludeon.RimWorld.Royalty
  - Ludeon.RimWorld.Ideology
  - UnlimitedHugs.HugsLib
  - Usgiyi.SlaveOutfits
  - qux.factionsamurais
Unloading 0 Unused Serialized files (Serialized files now loaded: 2)

Unloading 1 unused Assets to reduce memory usage. Loaded Objects now: 21937.
Total: 191.441200 ms (FindLiveObjects: 0.924000 ms CreateObjectMapping: 0.470000 ms MarkObjects: 189.974100 ms  DeleteObjects: 0.072800 ms)

Could not get new name (first rule pack: nomsamuraif)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)

Could not get new name (first rule pack: nomsamuraif)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)

Could not get new name (first rule pack: nomsamuraif)
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)




Don't know what else to do. Just at a loss.
#5
Help / Help with CompOversizedWeapon offset (JecsTools)
September 30, 2021, 11:59:30 PM
I have some oversized weapons which have been calibrated through the CompProperties' cardinal offsets to look normal while pawns are carrying them. The issue is that this adjusted offset makes their positioning look awkward while aiming. Any ideas on how I might be able to disable the offset only while aiming, or better yet: adjust the offset values for aiming separately?

Here's what the offset for one of them looks like:
<comps>
<li Class="CompOversizedWeapon.CompProperties_OversizedWeapon">
<northOffset>(0.10,0,-0.20)</northOffset>
<eastOffset>(0.10,0,-0.20)</eastOffset>
<westOffset>(-0.10,0,-0.20)</westOffset>
<southOffset>(0.10,0,-0.20)</southOffset>
</li>
</comps>

#6
Releases / Hellsing ARMS & its CE Patch
September 13, 2021, 04:30:33 PM




Adds powerful weapons made for and for killing monsters, accessible after researching Hellsing ARMS. Your colonists may struggle to wield some of them, but their firepower will justify the extra effort.

.454 Casull Auto

  • A high-calibur semi-auto pistol. High damage and rate of fire.
  • Barely reduces movespeed.
  • CE Ammo Types: HP, FMJ, AP, AP-HE


13mm Anti-Freak Combat Pistol 'Jackal'

  • Even more firepower than the Casull. A monstrous weapon that fires explosive bullets.
  • Slightly reduces movespeed.
  • CE Ammo Types: HP, FMJ, AP, AP-HE (custom)


13.7mm Anti-Midians Rifle 'BAERLKS'

  • Strong damage, accuracy, and range.
  • Capable of automatic burst fire.
  • Reduces movespeed.
  • CE Ammo Types: FMJ, AP-I, HE, Sabot


30mm Anti-Tank Cannon 'Harkonnen'

  • A massive, long-range, single-shot breech loader cannon which fires explosive shells.
  • Greatly reduces movespeed.
  • CE Ammo Types: HE, DU Sabot, Incendiary Napalm, HEAT, EMP, Antigrain


30mm Anti-Zeppelin Autocannon 'Harkonnen II'

  • The heaviest most over-powered vampire-blasting, zeppelin-slaying, mountain-shattering pinnacle of Hellsing ARMS.
  • Your colonists will struggle to move while handling this.
  • CE Ammo Types: Specialized FMJ and HEAT, and the breech-loader Harkonnen's shells as well


Walter's Deadly Dental Floss

  • Available for the low low price of 2669 silver at your nearest exotic trader.
  • Floss away that tooth decay!


Blessed Bayonets

  • Quick slash attacks; armour-piercing stab attacks.
  • Hastens the wielder's movespeed.
  • Throwable.


The Dandy Deck

  • Magical playing cards with a thirst for blood. As accurate as they are deadly.


Custom Extended Mauser C96

  • High accuracy for a pistol.
  • CE Ammo Types: HP, FMJ, AP


40mm Modded Multiple Grenade Launcher

  • Modified ammunition fires a shotgun spread of cursed spines.
  • Very high armour-penetration.
  • CE Ammo Types: Shotgun Spines; 40x46mm HE, EMP, Smoke Grenades


Dual 30mm Harkonnen II Weapon System

  • A mountable turret. The above description, but times two.
  • Ingredients: 70 plasteel, 200 steel, 100 chemfuel, 4 advanced components, and 2 Harkonnen II autocannons. Requires 20 construction to build.
  • The rocket-propelled Vladimir grenades are currently just for show, but rest assured: the dual autocannons by themselves will fulfill all of your firepower needs.



Some of these weapons were designed to be quite difficult to acquire. Beyond the research gate and crafting requirements for most arms, Walter's Deadly Dental Floss should only be acquirable by trading with an exotic ship or caravan, The Dandy Deck should only be acquirable as a rare relic or quest reward, and raiders and allies alike shouldn't spawn with ANY of the armaments. This is my first RimWorld mod though, so some things may have gone wrong!

If you found things to be different than described above, please let me know in the bug discussion!


1.0: Casull, Jackal, Harkonnen, Bayonets
1.01: Various value adjustments
1.10: Anti-Midians Rifle, Deadly Dental Floss, Extended Mauser, Modded MGL
1.11: WDDF fix; misc. value adjustments, generally buffs
1.20: The Dandy Deck, Harkonnen II, Dual Harkonnen II Weapon System
For more details see the Change Notes tab.


Combat Extended (CE Team)
Fully compatible with Hellsing ARMS (with the required Hellsing ARMS CE Patch )

Dual Wield (Roolo)
Adjustments for Hellsing ARMS:

  • By default, Casull & Jackal are regarded as 2h non-off-hand weapons due to their weight. You can adjust those variables and more in Mod Settings.
  • Dual-wielded Extended Mausers and Harkonnens will not display in their proper size.
YAYO Animations (YAYO)
Adjustments for Hellsing ARMS:

  • The "combat animations" part of this mod seems to override CompOversizedWeapon, which breaks the weapons' proper size scaling. This will result in some arms looking too big, and others looking too small.
  • Nobody wants tiny Harkonnens!
  • Combat animations can simply be toggled off in YAYO Animation's Mod Settings. The rest of the mod is fine.
Rim of Madness & RimMagic (mods that add vampires)
There is no special interaction between Hellsing ARMS and vampires.
I have no experience with these mods, and no idea how to add race-based damage modifiers/interactions here.
Might look into this later, but don't hold your breath.


Camera+ (Andreas Pardeike)
   > Lets you zoom further in to see textures in more of their detail.

More Corpse Display (Verniy709)
   > Old school Alucard.


Hellsing is a manga by Kouta Hirano which spawned two anime: Hellsing - Impure Souls in 2001 (Gonzo Animation) and Hellsing Ultimate in 2006 (Satelight, Madhouse, Graphinica).

I do not own or represent any aspect of the Hellsing IP. This is simply a fan work.


Hellsing - Kouta Hirano
Hellsing ARMS Mod & Hellsing ARMS CE Patch:
  • Graphics, XML, CE Compatibility - Baskerville
Oversized Weapon Display - Carny Senpai (Enable Oversized Weapons)
#7
Help / Any way to use RNG with only XML?
September 12, 2021, 11:55:40 AM
E.g. a gun that fires a randomized projectile from a list.

Can this only be accomplished in .dlls?
Is there a function in RimWorld that can simply be referenced in XML to randomly pick from a list in XML?